8. Modifying Queries
@Modifying
- 명시적 쿼리 선언 메서드 중, 수정 or 삭제 연산일 때 붙여주는 애노테이션
예제) update
더보기
@Modifying(flushAutomatically = true, clearAutomatically = true)
@Query("update User u set u.firstname = ?1 where u.lastname = ?2")
int setFixedFirstnameFor(String firstname, String lastname);
- flushAutomatically: 커밋 전 플러시
- clearAutomatically: 커밋 후 영속성 컨텍스트 초기화
예제) delete
더보기
@Modifying
@Query("delete from User u where u.role.id = ?1")
void deleteInBulkByRoleId(long roleId);
- 생명주기 콜백 실행 X (@PreRemove)
9. Applying Query Hints
@QueryHints
- JPA 쿼리 힌트 추가
예제
더보기
public interface UserRepository extends Repository<User, Long> {
@QueryHints(value = { @QueryHint(name = "name", value = "value") }, forCounting = false)
Page<User> findByLastname(String lastname, Pageable pageable);
}
- value: 쿼리 힌트 정의
- forCounting: (페이징 시) 카운트 쿼리에 힌트 적용할지 여부
출처
'Spring > Spring Data JPA' 카테고리의 다른 글
[Spring Data JPA] 4-1. Spring Data Extensions (1) (0) | 2024.08.02 |
---|---|
[Spring Data JPA] 3-3. Custom Repository Implementations (0) | 2024.08.02 |
[Spring Data JPA] 3-2. JPA Query Methods (6) (0) | 2024.08.02 |
[Spring Data JPA] 3-2. JPA Query Methods (3) (0) | 2024.08.02 |
[Spring Data JPA] 3-2. JPA Query Methods (5) (0) | 2024.08.02 |