2014-08-27 61 views
4

结果SQL应该是:查询春季数据JPA多重条件

"SELECT * FROM items where id LIKE '%"+ key + "%' or name LIKE '%"+ key + "%'"; 

这里关键是variable.I需要这样做SQL春季数据JPA。

我试着像下面和代码是不工作

@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

请添加所产生的查询与您方法。 – 2014-08-27 21:44:09

+1

你可以添加一个@Query(“select * from%id = 1%或者名称如%?1%的项目');' – 2014-08-27 22:10:43

回答

7

尝试这样,它应该运行

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); 
} 
+0

谢谢.....这对我很有帮助。 – 2015-05-04 13:46:00