2017-03-28 58 views
3

此問題涉及Spring Data JPA。Spring @Query with Lower和Wildcards

我需要一個(本地)@Query與低級函數和通配符。 但我沒有得到它的工作。

這裏是什麼,我要尋找一個過分簡單化的版本:

@Query(value = "SELECT * FROM CAR c WHERE LOWER(c.model) LIKE LOWER(%:model%)", nativeQuery = true) 
List<Car> findByModelMatching(@Param("model") String model); 

下限(%:模型%) - >不工作! LOWER(:model) - >正常工作!

我知道,這樣的查詢可以很容易地重新寫爲:

List<Car> findByModelContainingIgnoreCase(String model); 

但我不是在尋找一個命名查詢。

我的問題是:如何在@Query中將LOWER(甚至是UPPER)與WildCards結合使用!

乾杯

回答

2

LOWER函數接受字符串,你應該寫LOWER('%' || :model || '%'),如果你是在Oracle爲例。

+0

謝謝galovics!奇蹟般有效! – Dachstein

+0

我很高興能幫上忙。請接受答案,因爲其他人可能會從中受益。 – galovics