Это длинный вопрос и странная проблема, которую я надеюсь решить. Мой клиент отправляет объект JSON на мой сервер. Я сохраняю отчет и использую идентификатор, сгенерированный для другой цели, в моих jms, но иногда получаю нулевой идентификатор, когда мое добавление было успешным. Как я могу это предотвратить?Идентификатор объекта Grails после вставки
В моем домене
int id
String reportImage
Date reportDateTime;
static constraints = {
id(blank:false, unique:true)
reportImage (blank:true, nullable:true)
reportDateTime (blank:false)
}
def afterInsert = {
id= this.id
}
В моем контроллере, я
JSONObject json = request.JSON
AddReportService svc = new AddReportService()
def id= svc.addReport(json)
json.put("id",id)
jmsService.send(queue:'msg.new', json.toString())
В моей службе отчетов надстройки,
JSONObject obj = report
Reports reports = new Reports()
...
reports.save(flush:true)
myid = reports.id
return myid
В моих JMS,
def jmsService
static transactional = false
static exposes = ['jms']
@Queue(name='msg.new')
def createMessage(msg) {
JSONObject json = new JSONObject(msg)
int id = json.get("id") // sometimes is null, but report was added. How to prevent?
AlertManagement am = new AlertManagement()
am.IsToSendAlert(id)