结果sql应为:
"SELECT * FROM items where id LIKE '%"+ key + "%' or name LIKE '%"+ key + "%'";
这里的key是可变的。我需要在spring data jpa中执行这个sql。
我尝试如下,代码无效
@Transactional
public List<Item> findItemNameOrId(String key) {
return itemRepository.findByItemNameOrIdContaining(key);
}
这是ItemRepository
public interface ItemRepository extends JpaRepository<Item, Integer> {
List<Item> findByItemNameOrIdContaining(String key);
}
答案 0 :(得分:5)
尝试这样,它应该运行
public interface ItemRepository extends JpaRepository<Item, Integer> {
@Query("SELECT i FROM items i where i.id LIKE %:key% or i.name LIKE %:key%")
List<Item> findByItemNameOrIdContaining(@Param("key") String key);
}