8. Modifying Queries
@Modifying
- 명시적 쿼리 선언 메서드 중, 수정 or 삭제 연산일 때 붙여주는 애노테이션
update
@Modifying
@Query("update User u set u.firstname = ?1 where u.lastname = ?2")
int setFixedFirstnameFor(String firstname, String lastname);
- (attribute) flushAutomatically: EntityManager flush (수정 쿼리 실행 전)
- (attribute) clearAutomatically: EntityManager clear (수정 쿼리 실행 후, 이전 데이터 삭제하기)
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);
}
- (attribute) value: 쿼리 힌트 정의 (@QueryHint)
- (attribute) forCounting: (페이징 시) 카운트 쿼리에 힌트 적용할지 여부 (default: true)
출처
'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 |