- 위치 기반
- 이름 기반
select m from Member m where m.username = ?0 //위치 기반
select m from Member m where m.username = :name //이름 기반
- 이름 기반 사용할 것.
참고: 코드 가독성과 유지보수를 위해 이름 기반 파라미터 바인딩을 사용하자 (위치기반은 순서 실수가 바꾸면…)
파라미터 바인딩
public interface MemberRepository extends JpaRepository<Member, Long> {
// 파라미터 바인딩 // in 절을 이쁘게 만들어 준다. // List 대신 Collection 사용 가능
@Query("select m from Member m where m.username in :names")
List<Member> findByNames(@Param("names") List<String> names);
}
테스트 코드
// 파라미터 바인딩
@Test
public void findByNames(){
Member m1 = new Member("memberA", 10);
Member m2 = new Member("memberB", 20);
memberRepository.save(m1);
memberRepository.save(m2);
List<Member> result = memberRepository.findByNames(Arrays.asList("memberA", "memberB"));
for (Member member : result) {
System.out.println("member = " + member);
}
}
'프로그래밍 > SpringDataJPA' 카테고리의 다른 글
반환 타입 (0) | 2022.06.18 |
---|---|
Logging 설정 (0) | 2022.06.18 |
@Query, 값, DTO 조회하기 (0) | 2022.06.18 |
주요 메서드, 쿼리 메소드 기능 (0) | 2022.06.18 |
예제 도메인 모델 (1) | 2022.06.18 |