2012-01-25 3 views
2

JPA에서 spring을 사용하고 있습니다. 그리고 다른 엔터티 (한 응용 프로그램의 다른 모듈)를 포함하는 두 개의 EntityManagers가 있으며 두 매개 변수가 모두 동일한 데이터 소스를 가리 킵니다.하나의 트랜잭션에서 동일한 데이터 소스를 가리키는 두 개의 다른 엔티티 관리자를 사용할 수 있습니까?

두 트랜잭션을 단일 트랜잭션 (단일 TransactionManager 사용)으로 사용할 수 있습니까? JTA를 사용해야합니까? 그렇다면 바람둥이 아래에서 그것을 사용하는 가장 좋은 방법은 무엇입니까?

봄에 구성하는 방법은 무엇입니까?

답변

3

표준 JPA 트랜잭션과 Spring의 JpaTransactionManager은 모두 EntityManager에 바인딩됩니다. 그들은 여러 관리자와 대화 할 수 없으므로 여러 관리자를 통해 트랜잭션을 조정할 수 없습니다.

이 작업을 수행하려면 엔티티 관리자 구성을 병합하여 EntityManager 하나만 만들거나 Spring의 JtaTransactionManager를 통해 JTA 트랜잭션을 사용해야합니다.

톰캣 (기본 제공 JTA 지원이 없음)을 사용하는 경우 타사 JTA 구현을 찾아야합니다.

+0

첫 번째 옵션 인 런타임에서 엔티티 관리자를 병합했습니다. 이 같은 것 : http://labs.bsb.com/2010/11/configuring-modular-jpa-applications-with-spring/ –

관련 문제