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

wah*_*cse -1 spring jpa spring-data-jpa

结果sql应该是:

"SELECT * FROM items where id LIKE '%"+ key + "%' or name LIKE '%"+ key + "%'";  
Run Code Online (Sandbox Code Playgroud)

这里的键是变量.我需要在spring数据jpa中执行此sql.

我尝试如下,代码不起作用

@Transactional
public List<Item> findItemNameOrId(String key) {
    return  itemRepository.findByItemNameOrIdContaining(key);       
}
Run Code Online (Sandbox Code Playgroud)

这是ItemRepository

public interface ItemRepository extends JpaRepository<Item, Integer> {

List<Item> findByItemNameOrIdContaining(String key);
}
Run Code Online (Sandbox Code Playgroud)

Sha*_*ful 6

尝试这样,它应该运行

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);
}
Run Code Online (Sandbox Code Playgroud)