쿼리 메소드 - @Query

박찬우·2024년 1월 11일

스프링 데이터 JPA

목록 보기
4/18

@Query

  • 실행할 메서드에 정적 쿼리를 직접 작성하므로 이름 없는 Named 쿼리라 할 수 있음
  • JPA Named 쿼리처럼 애플리케이션 실행 시점에 문법 오류를 발견할 수 있음
@Query("select m from Member m where m.username = :username")
List<Member> findByUsername(@Param("username") String username);

값, DTO 조회하기

@Query("select m.username from Member m")
List<String> findByUsernameList();
  • DTO
@Data
@AllArgsConstructor
public class MemberDto {
    private Long id;
    private String username;
    private String teamName;
}
@Query("select new study.datajpa.dto.MemberDto(m.id, m.username, t.name) from Member m join m.team t")
List<MemberDto> findMemberDto();

컬렉션 파라미터 바인딩

  • Collection 타입으로 in절 지원
@Query("select m from Member m where m.username in :names")
List<Member> findByNames(@Param("names") List<String> names);
profile
진짜 개발자가 되어보자

0개의 댓글