Я использую Spring (выпуск 3.1.4) с HibernateTemplate (3.6.7.Final) и Spring Data JPA (1.3.0.RELEASE). Я определил два менеджера транзакций: один для Hibernate и другой для Spring Data JPA, в моем файле конфигурации. Оба менеджера транзакций используют разные источники данных.Весенняя аннотация с двумя менеджерами транзакций
<bean id="jpaTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="transactionManager" />
</bean>
Я хочу, чтобы некоторые методы в своем коде использовать менеджер транзакций библиотеки Hibernate и некоторые методы использования Spring данных менеджера транзакций JPA в. (Spring Doc link - 10.5.6.2 Несколько менеджеров транзакций с @Transactional)
Я определила аннотации приводимой транзакцию в моем файле конфигурации, который по умолчанию собирания шаблона транзакции Hibernate в
<tx:annotation-driven />
Для запуска методов с весной Диспетчер транзакций JPA. Я упоминаю имя менеджера транзакций в определении моего метода, то есть @Transactional (value = "jpaTransactionManager"), но после вставки записи в БД поток получает повешенное, а дополнительный код не вызывается.
@Transactional(value = "jpaTransactionManager")
public void transactionMethod()
{
Object obj = createObj();
repository.save(obj); //data is inserted in DB here but after that thread is getting hanged here and below business logic is not called
// Some business logic
}
методы с использованием менеджера транзакций библиотеки Hibernate работает отлично, но методы, использующие менеджер транзакций Spring Data JPA являются не работают.
Я попытался следующие вещи без какого-либо успеха
- Использование двух с обоих менеджеров транзакций.
- Аннотирование @Transactional (value = "jpaTransactionManager") как в уровне уровня и уровня метода.
Действительно оцените любую помощь в вышеупомянутой проблеме.