개요
- @Query 를 사용한 jpql 에 파라미터 바인딩을 해보자.
이름 기반 파라미터 바인딩
@Query("select m from Member m where m.username = :name")
Member findMembers(@Param("name") String username);
컬렉션 파라미터 바인딩
@Query("select m from Member m where m.username in :names")
List<Member> findByNames(@Param("names") Collection<String> names);
@Test
void findByNames() {
Member member1 = new Member("AAA", 10);
Member member2 = new Member("BBB", 20);
memberRepository.save(member1);
memberRepository.save(member2);
List<Member> result = memberRepository.findByNames(Arrays.asList("AAA", "BBB"));
for (Member name : result) {
System.out.println("name = " + name);
}
}
- 파라미터가 여러 개 일 경우
Collection 타입으로 in절 지원