Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate Grails JMS消息无法持久化数据_Hibernate_Grails_Jms - Fatal编程技术网

Hibernate Grails JMS消息无法持久化数据

Hibernate Grails JMS消息无法持久化数据,hibernate,grails,jms,Hibernate,Grails,Jms,在我的Grails2.5.0应用程序中,我想使用ActiveMQ和JMS制作一个嵌入式中间件。 因此,我已经为JMS和activeMQ安装了插件。 我从控制器向jmsService发送消息,并创建了侦听器来接收队列中的数据。该数据是一个JSON数据,其中包含大量需要通过不同域对象持久化的数据。 数据已从控制器正确传播到侦听器 问题是,当我用数据调用相关的服务方法时,它给了我很多hibernate异常。 但是,如果直接从带有控制器的控制器调用服务方法,则一切都会变得完美 我怀疑,有一些会话冲突或丢

在我的Grails2.5.0应用程序中,我想使用ActiveMQ和JMS制作一个嵌入式中间件。 因此,我已经为JMS和activeMQ安装了插件。 我从控制器向jmsService发送消息,并创建了侦听器来接收队列中的数据。该数据是一个JSON数据,其中包含大量需要通过不同域对象持久化的数据。 数据已从控制器正确传播到侦听器

问题是,当我用数据调用相关的服务方法时,它给了我很多hibernate异常。 但是,如果直接从带有控制器的控制器调用服务方法,则一切都会变得完美

我怀疑,有一些会话冲突或丢失了类似于hibernate会话的东西

有人能帮我解决这个问题吗

错误消息如下所示:

[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)

我可以通过添加消息转换器来解决我的问题。 后来我用camelcase修改了代码。
我将所有消息从controller推送到ActiveMQ,并使用驼峰案例拾取数据并发送到目标服务,对其进行解组。

通过添加消息转换器,我能够解决我的问题。 后来我用camelcase修改了代码。 我将所有消息从controller推送到ActiveMQ,并使用驼峰案例拾取数据并发送到目标服务,对其进行解组