@Query
를 지원한다.JPQL
을 이용해서 작성해야한다.JPQL
- 특정 DB SQL에 의존하지 않음.
@Query("select i from Item i where i.itemDetail like " + // like 다음에 띄어쓰기 해야됨
"%:itemDetail% order by i.price desc")
List<Item> findByItemDetail(@Param("itemDetail") String itemDetail);
@Test
@DisplayName("@Query를 이용한 상품 조회 테스트")
public void findByItemDetailTest(){
this.createItemList();
List<Item> itemList = itemRepository.findByItemDetail("테스트 상품 상세 설명");
for(Item item : itemList){
System.out.println(item.toString());
}
}
@Query
의 nativeQuery
속성을 사용.
@Query("select i from Item i where i.itemDetail like " +
"%:itemDetail% order by i.price desc", nativeQuery = true)
List<Item> findByItemDetail(@Param("itemDetail") String itemDetail);
@Test
@DisplayName("nativeQuery를 이용한 상품 조회 테스트")
public void findByItemDetailTest(){
this.createItemList();
List<Item> itemList = itemRepository.findByItemDetail("테스트 상품 상세 설명");
for(Item item : itemList){
System.out.println(item.toString());
}
}