Hibernate EntityManager + JOTM : 트랜잭션이 사용되지 않습니다
-
20-09-2019 - |
문제
나는 JOTM과 Hibernate EntityManager를 통합하여 거래 방식 환경에서 EJB를 테스트하지만 컨퍼런스 외의 외부인을 테스트하려고합니다.
내 테스트는 다음과 같습니다.
- JOTM을 시작하십시오
- JOTM의 사용자 추출을 JNDI에 넣으십시오
- StandardXadataSource를 작성하고 구성합니다
- 데이터 소스를 JNDI에 넣으십시오
- 최대 절전 모드를 구성하고 EMF를 만듭니다
- EM을 만듭니다
- 거래를 시작하십시오
- EM의 거래에 가입하십시오
- 엔티티를 저장하십시오
- 저장되어 있는지 확인하십시오
- 거래 롤백
- 레코드 수에 대해 데이터베이스를 확인하십시오
- 모든 것을 찢어 버리십시오
내 코드는 다음과 같습니다.http://pastebin.com/m22a9f6b
로깅 출력은 다음과 같습니다.http://pastebin.com/m6da9383a
테스트는 12 단계에서 실패합니다 (121 행).
보시다시피, 거래를 롤백했지만 DB에는 레코드가 있습니다. 전혀 사용하지 않는 트랜잭션처럼 보이고 레코드가 DB로 들어갔습니다.
이것이 어떻게 일어날 수 있는지, 어떻게 고치는 지 아이디어가 있습니까?
해결책
간단한 연결 대신 Xaconnection을 반환 할 ConnectionProvider의 구현을 제공해야한다고 생각했습니다. 이런 식으로 거래는 작동하는 것 같습니다
제휴하지 않습니다 StackOverflow