@Modifying
Spring Data JPA에서 @Query를 이용해 INSERT, UPDATE, DELETE 쿼리를 작성할 경우 붙여줘야하는 어노테이션이다(Select는 아님)
여기에 줄 수 있는 옵션에는 2가지가 있다
- flushAutomatically : 쿼리 실행 전 쓰기 지연 저장소의 쿼리를 flush 하는 옵션
- clearAutomatically : 쿼리 실행 후 영속성 컨텍스트를 비우는 옵션
clearAutomatically = true
@Query 쿼리 실행 후에 영속성 컨텍스트를 비워서 DB에서 수정된 값을 정상적으로 조회할 수 있게 하기 위해 사용한다
flushAutomatically = true
@Query 쿼리 실행 전에 쓰기 지연 저장소에 남아있는 쿼리를 미리 flush 하고자 할 때 사용한다
트랜잭션 내에서 JPQL를 실행하면, 자동적으로 영속성 컨텍스트가 flush 된다. 하지만 모든 것을 flush하는 것이 아닌 관련된 것들을 flush한다. flushAutomatically은 모든 내역을 커밋하려고 할 때 사용하는 옵션이다.
'I leaned > 스프링,스프링부트' 카테고리의 다른 글
Validation에서 @Size와 @Length의 차이점 (1) | 2024.01.21 |
---|---|
도커 명령어 (0) | 2023.09.15 |
Spring RestDoc 적용법 (0) | 2023.07.27 |
@Transaction(readOnly=true) (0) | 2023.07.25 |
AOP(관점지향프로그래밍) (0) | 2023.07.25 |