2011-11-10 1 views
2

두 EntityManagers 인스턴스가 동일한 PersistenceContext를 나타내는 경우 확인하는 방법이 있나요?시험이 PersistenceContexts

컨테이너는 EntityManager의의 구현을위한 프록시를 사용할 수 있습니다, 그래서 주입의 EntityManager의 기준을 확인하고 ("=="비교를하고 즉)과 비교 생각하지 않습니다는 것을 말할 충분하다 동일한 PersistenceContext를 나타냅니다. 그렇습니까?

답변

1

는 I 동일한 엔티티 관리자 팩토리 동일한 & 두 지점 벤더 고유 기본 객체를 반환 entityManager.getDelegate() 비교, 동일한 유닛으로 영구 콘텍스트를 주입 @PersistenceContext

  • 두 엔티티 관리자와 시나리오를 디버깅되어왔다 . 다른 단위

  • 는 대표 모두 달랐다 & 엔티티 관리자 팩토리 획득.

또한 this 포스트를 참조 할 수 있습니다.

주 : 사용 환경은 자바 EE 5, 추가 정보를 제공 할 수 getMetaModel(), unwrap(object), getProperties() 등과 같은 여러 가지 다른 방법이 있었다.

+0

고마워요! 아무도이 자료에 관심이 없다고 생각하기 시작했습니다. :-) 다른 소스 (예 : Glassfish 메일 링리스트)에서 얻은 정보를 수집하고 여기에 추가합니다. –

0

저는 Glassfish 메일 링리스트, Eclipselink 포럼 및 Nayan Wadekar 응답에서 얻을 수 있었던 정보를 요약하고 here이라고 게시했습니다.

약식으로 풀지 않은 JPA 제공자 EntityManager을 비교하면 응용 프로그램 서버 EntityManager보다 적절한 정보를 얻을 수 있습니다.
다른 방법으로 동일한 트랜잭션을 다른 방법으로 사용하고 있는지 확인하려면 트랜잭션 키를 확인하십시오. 그렇다면 동일한 PersistenceContext을 사용해야 함을 의미합니다. 시간과 답변에 대한