HibernateSystemException: сессия Hibernate не связана с потоком - PullRequest
0 голосов
/ 04 июля 2011

Я получаю HibernateSystemException , хотя я сделал все, что упомянуто на разных форумах.

Вот часть applicationContext.xml

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"/>
</bean>

Я также разместил аннотацию @Transactional над своим классом.

@Transactional
public class MyClassImpl

Ответы [ 4 ]

2 голосов
/ 04 июля 2011

A) это неправильный менеджер транзакций:

<bean id="transactionManager" 
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"/>
</bean>

вам нужно org.springframework.orm.hibernate3.HibernateTransactionManager, как вы можете видеть в 13.3.3 Hibernate> Декларация декларативной транзакции .

DataSourceTransactionManager для простого JDBC, а не для Hibernate (см. 12.3.8 JDBC> DataSourceTransactionManager).

Б) эта строка также нужна:

<tx:annotation-driven transaction-manager="transactionManager" />
1 голос
/ 04 июля 2011

Вы проверили, присутствует ли эта разметка в файле контекста приложения?

<context:annotation-config />

Необходимо учитывать ваши аннотации.

0 голосов
/ 04 июля 2011

Перед выполнением любого запроса вы можете попробовать этот фрагмент кода:

Session session = SessionFactoryUtils.getSession(dataSource, null, null);
TransactionSynchronizationManager.bindResource(dataSource, new SessionHolder(session));

Пожалуйста, держите меня в курсе.

0 голосов
/ 04 июля 2011

Вы включили пространство имен tx в свою конфигурацию? enter image description here

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