我正在使用JMS插件' org.grails.plugins:jms:2.0.0.M1'在我的grails 3.1项目中。我使用jmsService在队列中放了一条消息:
jmsService.send("msgPending", [eventType: it.msgEventType.toString(), msgEvent: messageXml])
{
Message msg ->
msg.setJMSDeliveryMode(DeliveryMode.PERSISTENT)
msg.setJMSExpiration(queueTimeout)
}
使用已配置的驼峰路由消耗此消息,该路由在同一个类中具有端点方法,并将其置于该路径上。
收到消息后,我尝试使用数据保存实体,但我得到以下异常:
找不到当前线程的会话;嵌套异常是org.hibernate。
我尝试用Entity.withTransaction包装save方法,我也用@Transactional注释了类和方法,但仍然看到同样的问题。
有没有人对此有任何疑问?
由于
答案 0 :(得分:0)
通过强制刷新实体的存储,即entity.save(flush:true),不再出现错误并且实体保存正确。
当我检查是否有一个hibernate会话附加到实体而没有刷新保存时,我可以看到有。我不知道为什么我必须强制冲洗,但它现在正在工作。