최대 절전 모드에서 다중 단계 거동에 관한 문제가 거의 없습니다. 이것이 내가하는 일이다. 내 DAO 방법최대 절전 모드에서의 다단계 트랜잭션
- 의
하나는 표 A에 새 레코드를 생성하고 오라클은 기본 키를 생성 검색합니다.
- 코드가 다음과 같은 형태의 1 단계
에서 취득한 기본 키 테이블 B에서 행을 업데이트 :
@Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW)
public Object myDAOMethos(...){
....
getHibernateTemplate().execute(
new HibernateCallback<Long>() {
public Long doInHibernate(Session session)
throws HibernateException, SQLException {
// Create a new record in table A
session.save(objA);
final long pKey = objA.getId();
// Update the row in table B
org.hibernate.Query query = session
.getNamedQuery("updateBQuery").setLong("idB",pKey...
query.executeUpdate();
}
}
return true;
}
});
}
방법은 transction 따라 결합된다.
내 문제 : 바람둥이에이 코드를 실행하면 모든 것이 잘 작동합니다. 그러나 이것에 대한 junit 테스트 케이스를 실행하려고하면 B 테이블의 업데이트가 수행되지 않습니다. 콘솔 출력 (hibernate.show_sql = true)에서 업데이트 SQL을 볼 수는 있지만. 예외도 없습니다! 단지 삽입이 일어나서 그게 다야.
여기 무슨 일인지 잘 모름! 어떤 아이디어!?
관련, -J
또한 포인트 1과 관련하여 일부 제약으로 인해 "외래 키"가 실제로 외래 키로 설정되지 않습니다. – joesatch