Весенние транзакции и hibernate.current_session_context_class

У меня есть приложение Spring 3.2, которое использует Hibernate 4 и Spring Transactions. Все методы работали отлично, и я мог правильно получить базу данных для сохранения или получения объектов. Затем я представил multithreading, и поскольку каждый stream обращался к db, я получал следующую ошибку из Hibernate:

org.hibernate.HibernateException: Illegal attempt to associate a collection with two open sessions 

Я прочитал из Интернета, что я должен добавить thread в мою конфигурацию Hibernate, но теперь каждый раз, когда я пытаюсь получить доступ к db, я получаю:

 org.hibernate.HibernateException: saveOrUpdate is not valid without active transaction 

Однако мои методы обслуживания аннотируются с помощью @Transactional , и все работает отлично до добавления thread .

Почему нет транзакции, хотя методы аннотируются с помощью @Transactional? Как я могу решить эту проблему?

Вот моя конфигурация Hibernate (включая свойство контекста сеанса):

          create org.hibernate.dialect.MySQLDialect true thread     ...        

    При использовании весенних и весенних транзакций никогда не возиться с свойством hibernate.current_session_context_class вы используете JTA.

    Spring по умолчанию установит собственную реализацию CurrentSessionContext ( SpringSessionContext ), однако, если вы установите ее самостоятельно, это не будет так. В основном нарушение правильной интеграции транзакций.

    Единственная причина для изменения этого параметра – всякий раз, когда вы хотите использовать транзакции, управляемые JTA, тогда вы должны настроить это для правильной интеграции с JTA.

    Давайте будем гением компьютера.