주의점 메모장

JPA 벌크연산에 대해서 조심하자

키스샷1104 2023. 11. 18. 09:02

CreateQuery나 @Query등 이와 같은 것들로 데이터 베이스에 그대로 날리면 영속성 컨텍스트에 있는 것들은 그것이 바뀐지 모른다 르허기 때문에 

이와 같이 벌크연산을 하게 되었다면 반드시 

 

em.flush()  지연저장소에 쌓아놨던 쿼리문을 날려 DB와 영속성컨텍스트를 동기화

em.clear() 영속성 컨텍스트 내용 증발

 

 

을 해주어야 한다. 안그러면 영속성 컨텍스트에 있는 업데이트가 안된 내용이 조회가 된다.

 

이렇게 하면 clearAutomatically를 true clear따로 안해줘도 된다.