본문 바로가기
개발

JPA - save()와 트랜잭션, Dirty Checking

by 플리트우드 2024. 12. 4.

DB를 업뎃하는 시점?

save()를 날려도, 트랜잭션 종료시점에 DB가 업뎃된다. 

트랜잭션 마지막에 컨텍스트에 존재하는 데이터를 쿼리로 만들어서 날린다.

 

Dirty Checking 기능  

트랜잭션 도중 엔티티매니저에 존재하는 객체를 set메소드 등으로 변경했을 때, 이를 감지하고 트랜잭션 커밋 시점에 변경사항을 DB에 반영한다. 따라서 영속상태에 있는 객체는 save문이 따로 필요없다. 하지만 조심해서 써야한다는 거~