dev/spring data JPA
네이티브 쿼리
dev_0hoon
2024. 3. 7. 16:52
어쩔 수 없는 상황이 아니라면 가급적 사용하지 않는 것이 좋음
사용 법은 단순하다.
@Query(value = "select * from member where username = ?" , nativeQuery = true)
Member findByNativeQuery(String username);
@Query에 nativeQuery를 true로 주면 끝이다.
프로젝션과 함께 사용하기
package study.datajpa.repository;
public interface MemberProjection {
Long getId();
String getUsername();
String getTeamName();
}
@Query(value="select m.member_id as id, m.username, t.name as teamName from member m " +
"left join team t", countQuery = "select count(*) from member ", nativeQuery = true)
Page<MemberProjection> findByNativeProjection(Pageable pageable);
//when
Page<MemberProjection> result = memberRepository.findByNativeProjection(PageRequest.of(0, 10));
List<MemberProjection> content = result.getContent();
동적 네이티브 쿼리 사용방식