Grails 2.4.5 org.springframework.orm.hibernate4.HibernateSystemException:找不到当前线程的会话

时间:2017-12-21 12:47:20

标签: grails gorm

我正在尝试从serviceA方法m1调用另一个服务(serviceB)方法m2。在方法m2中,域对象被保存到db,并且此时它会抛出"找不到当前线程的会话"错误。如果我将m2称为api,它会按预期进行。在方法m2中,我使用withSession,withTransaction多次。 在m1中调用m2之前,我正在保存域对象,并且它正在成功更新,没有任何错误。 在保存调用之前,GORM能够从db获取数据,但是在下一行(使用flush保存)中,它不会获得会话。 我使用的是Grails 2.4.5,java版本是jdk 1.8,数据库是PostgresSql。

堆栈跟踪:

org.springframework.orm.hibernate4.HibernateSystemException: No Session found for current thread; nested exception is org.hibernate.HibernateException: No Session found for current thread
at org.springframework.orm.hibernate4.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:216)
at org.codehaus.groovy.grails.orm.hibernate.GrailsHibernateTemplate.convertHibernateAccessException(GrailsHibernateTemplate.java:606)
at org.codehaus.groovy.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:192)
at org.codehaus.groovy.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:132)
at org.codehaus.groovy.grails.orm.hibernate.GrailsHibernateTemplate$execute$0.call(Unknown Source)
at org.codehaus.groovy.grails.orm.hibernate.HibernateGormStaticApi.withNewSession(HibernateGormStaticApi.groovy:515)
at org.codehaus.groovy.grails.orm.hibernate.HibernateGormStaticApi$withNewSession$2.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)

0 个答案:

没有答案