2009-09-07 3 views
2

하나의 EntityManager가 여러 동시 트랜잭션에서 원활하게 참여할 수있는 방법이 있습니까?하나의 EntityManager (Hibernate)가 여러 동시 트랜잭션에 참여할 수 있습니까?

글쎄, 그렇진 않습니다. 뭔가 같이 :

  1. 시작 텍사스에서 물건을 할
  2. 1 TX 1
  3. 시작하세요 다시 TX 1
  4. 을 텍사스에게 커밋이
  5. 2
  6. 텍사스에서 물건을 할 2
  7. 을 TX tx로 작업하기 1
  8. 커밋 tx 1

단계가 겹쳐 있지 않은 단계가 뒤 따릅니다.

답변

1

별도의은 거래합니까? 아니, 할 수 없다.

EntityTransaction.begin()을 현재 활성 트랜잭션 (직접 또는 간접적으로 수행해야하는 작업)으로 호출하려고하면 IllegalStateException이 발생합니다.

작업 단위/트랜잭션 범위 개념은 Hibernate EntityManager manual에 자세히 설명되어 있습니다.

관련 문제