gpt4 book ai didi

hibernate - Grails JMS消息无法持久保存数据

转载 作者:行者123 更新时间:2023-12-02 14:49:40 26 4
gpt4 key购买 nike

在我的Grails 2.5.0应用程序中,我想使用ActiveMQ和JMS制作嵌入式中间件。
因此,我已经为JMS和activeMQ安装了插件。
从 Controller ,我正在向jmsService发送消息,并且已经创建了侦听器以接收队列中的数据。数据是JSON数据,其中包含许多数据,我需要通过不同的Domain对象来保留这些数据。
数据已从 Controller 正确传播到侦听器。

问题是,虽然我用数据调用了相关的服务方法,但它给了我很多休眠异常。
但是,如果通过带 Controller 的 Controller 直接调用服务方法,那么一切都会变得完美。

我怀疑,这有一些 session 冲突或休眠 session 丢失的情况。

有人可以帮我摆脱这个问题吗?

错误消息如下所示:

[01:51:45.072] ERROR org.hibernate.AssertionFailure an assertion failure occured (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session)
org.hibernate.AssertionFailure: null id in com.mycomp.domain.Client entry (don't flush the Session after an exception occurs)
at org.hibernate.event.def.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:82)
at org.hibernate.event.def.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:190)
at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:147)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:58)
at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:1185)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1261)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at org.codehaus.groovy.grails.orm.hibernate.metaclass.FindPersistentMethod$1.doInHibernate(FindPersistentMethod.java:163)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:407)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:339)
at org.codehaus.groovy.grails.orm.hibernate.metaclass.FindPersistentMethod.doInvokeInternal(FindPersistentMethod.java:103)
at org.codehaus.groovy.grails.orm.hibernate.metaclass.AbstractStaticPersistentMethod.invoke(AbstractStaticPersistentMethod.java:79)
at org.codehaus.groovy.grails.orm.hibernate.metaclass.AbstractStaticPersistentMethod.invoke(AbstractStaticPersistentMethod.java:72)
at org.codehaus.groovy.grails.orm.hibernate.HibernateGormStaticApi.find(HibernateGormStaticApi.groovy:570)

最佳答案

我可以通过添加消息转换器来解决我的问题。
后来我通过使用驼峰式大小写来更改了代码。
我将所有消息从 Controller 推送到ActiveMQ,然后使用驼峰式案例选择数据并将其发送到目标服务进行解码。

关于hibernate - Grails JMS消息无法持久保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38653631/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com