2014-08-27 44 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