트랜잭션이 JPA (EclipseLink 2.0)로 커밋되는시기는 언제입니까?JEE JPA (EclipseLink 2.0)에서 트랜잭션을 커밋하는시기는 언제입니까?
public void methodA()
{
while(something)
{
methodB();
}
}
public void methodB()
{
//Insert new client into Client table.
}
하는의 그것 methodA
이 완료 될 10 분 정도 걸립니다 가정 해 봅시다 :
이
내 문제입니다.methodA
이 실행되는 동안 데이터베이스의 Client 테이블을 들여다 보면 어떤 행도 볼 수 없습니다. 즉,
methodB
이 끝나면 트랜잭션이 커밋되지 않습니다. 그러나
methodA
이 끝날 때까지 기다리면 클라이언트가 데이터베이스에 나타납니다.
methodB
종료 후 모든 트랜잭션을 커밋하고 싶습니다. 어떻게해야합니까?
EDIT : 응용 프로그램 컨테이너 (Glassfish)가 "커밋"을 처리하도록합니다. 엔티티 관리자를 호출하여이 작업을 수행하고 싶지 않습니다. 나는 methodB()
위의 주석과 같은 것을 찾고 있습니다. 두 메소드 모두 싱글 톤 빈 안에 있습니다.
어디 당신이 당신의 거래 정의/경계를 넣어 가지고 (methodA()를 EJB없는 가정)? 분명히 누구나 em.getTransaction()을 호출하고 로컬 트랜잭션을 사용할 경우 커밋 할 수 있습니다. –
커밋하고 싶지 않습니다. 응용 프로그램 컨테이너에서 처리하도록합니다 (Glassfish 3.1.2.2). –