2014-07-07 14 views
0

我試圖找出如何使用像在JPA /春4.到目前爲止,我有以下命名查詢...如何使用像JPQL

@NamedQuery(name = "MyClass.listItems", 
    query = "SELECT DISTINCT(a.name) FROM MyClass a where a.name like ?1") 

的問題是最後我需要%,我不知道如何添加它。我試過like ?1%,但是這給了一個編譯錯誤。

回答

1

好了,所以我發現something,工程樣的,...

@NamedQuery(name = "MyClass.listItems", 
     query = "SELECT DISTINCT(a.name) FROM MyClass a where a.name like CONCAT(?1, '%')") 

這裏的問題是隻有工作,如果之後(這是罰款在我的情況)。我想你可以鏈接一個Concat,如果你想,但還沒有嘗試過。

+1

這基本上是正確的,而不是實際上與春季相關的問題。 JPQL不支持查詢內類似表達式中的'%'。 '%'es必須應用於綁定到參數的值。 Spring Data JPA增加了一些額外的功能(參見[參考文檔](http://docs.spring.io/spring-data/jpa/docs/current/reference/html/jpa.repositories.html#jpa)。 query-methods.at-query)以獲取更多詳細信息)。 –