0
나는 최대 절전 모드 및 일반적으로 자바 EE에 새로운 오전과 코드의이 작품은 false를 반환하는 이유는 데이터베이스보고에서 내가 트랜잭션이 실제로 커밋 볼 수 있지만 사람이 나에게 말할 수 있는지 궁금 해서요 :transaction.wasCommitted()가 false를 반환하는 이유는 무엇입니까?
session.beginTransaction();
session.saveOrUpdate(user);
session.getTransaction().commit();
return session.getTransaction().wasCommitted(); //Always false
감사합니다.
API javadoc의 경우 :'이 트랜잭션이 성공적으로 커밋되었는지 확인하십시오. 이 메소드는 commit() 호출이 성공한 후에도 false를 리턴 할 수 있습니다. 예를 들어, JTA 기반 전략은 commit() 호출에 no-op를 사용하여 트랜잭션을 시작하지 않으면 호출합니다. 그 경우에는 wasCommitted()를 false로보고합니다. –
커밋은 요청한 직후에 반드시 발생하는 것은 아니기 때문에 (어쩌면 커밋()이 다른 스레드에서 시작됨) 등 ... 어쨌든 방금 한 일에 대해 묻는 것은 의미가 없습니다. 3 = 2 + 1을 수행 한 후). – m0skit0
이상한데, 왜 실제로 작동하지 않는 방법이 있습니까? –