Spring/JPA

[JPA] 점멸(Flash) 말고 Flush (feat. LoL)

Pazery는ENFJ 2021. 10. 17. 18:30
반응형

지난 포스팅에서 잠깐 등장 했던 Flush 를 간략하게 정리하고자 합니다.

https://itkevin.tistory.com/22

 

[JPA] JPA에서 가장 중요한 2가지 중에 첫 번째 (with. Persistence)

JPA에서 가장 중요한 2가지가 있습니다. 1. 객체와 관계형 데이터베이스를 어떻게 매핑할 것인지 2. JPA의 매커니즘 (영속성 콘텍스트) 오늘은 위 2가지 중 JPA의 메커니즘에 대해서 간단하게 정리를

itkevin.tistory.com

Flush 는 JPA 매커니즘에서 중요한 역할을 하고 있는데, 바로 동기화 입니다.

논리적인 개념인 영속성 컨텍스트를 비우지 않고 변경 내용을 데이터베이스에 동기화 해주는 아주아주 훌륭한 친구입니다.

 

영속성 컨텍스트를 플러시 하는 방법은

1. EntityManager를 통해 flush()를 직접 호출 하거나

2. 트랜젝션이 커밋 될때 자동호출 되거나

3. JPQL 쿼리가 실행될때도 자동호출 됩니다

(Flush 는 영속성 컨텍스트과 관련된 친구이기 때문에 당연히 EntityManager 와 관련이 깊습니다!)


Flush Mode 옵션

1. FlushModeType.AUTO (Default) : 기본 값으로 commit 이나 쿼리를 실행할 때 Flush

2. FlushModeType.COMMIT : commit 할 때 Flush 

 

가 있습니다.


Reference

https://www.inflearn.com/course/ORM-JPA-Basic/

 

 

 

반응형