查询弹簧数据Jpa的多重条件

时间:2014-08-27 21:12:41

标签: spring jpa spring-data-jpa

结果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);
}

1 个答案:

答案 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);
}
相关问题