2012-01-13 53 views
3

我试图从hibernate 3.6.7升级到4.0.1,并从JDK 1.6升级到JDK 1.7。休眠3.6.7到4.0.1升级,嵌套事务

迁移配置文件等...我可以运行我的应用程序很好。 。

首先我休眠的cfg.xml文件的位:

<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory< /property> 
<property name="current_session_context_class">thread</property> 

但我面临1嵌套sessionFactory.getCurrentSession)的问题(调用BeginTransaction() 这用来休眠3.6合作.7,尽管没有“hibernate.transaction.factory_class”属性。

任何人都知道我做错了什么?

堆栈跟踪是这样的:

org.hibernate.TransactionException: nested transactions not supported 
at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:152) 
at org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1263) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:350) 
at $Proxy4.beginTransaction(Unknown Source) 

回答

2

读它看起来像Hibernate从来没有支持嵌套事务的文件,并认为这是在休眠4强制执行,因为该类AbstractTransactionImpl之前并不存在。

我不知道你想用嵌套事务解决什么问题,但也许有另一种方法可以做到,只使用一个。