Hibernate 3.6.7 до 4.0.1 обновление, вложенные транзакции - PullRequest
3 голосов
/ 13 января 2012

Я пытаюсь перейти с hibernate 3.6.7 на 4.0.1 и с JDK 1.6 до JDK 1.7.

После переноса файлов конфигурации и т. Д. Я могу нормально запустить свое приложение.

Сначала немного cfg.xml моего спящего режима:

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

Но я сталкиваюсь с одной проблемой с вложенным sessionFactory.getCurrentSession (). BeginTransaction () Раньше это работало в hibernate 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)

1 Ответ

2 голосов
/ 17 января 2012

При чтении документации кажется, что Hibernate никогда не поддерживал вложенные транзакции, и что это было реализовано в Hibernate 4, так как этот класс AbstractTransactionImpl не существовал раньше.

Я не знаю, что вы пытаетесь сделатьрешить с помощью вложенных транзакций, но, возможно, есть альтернативный способ сделать это, используя только одну.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...