2011-04-18 25 views
1

我正在爲整數進行搜索查詢。這是在類Factuur的NamedQuery:使用Int的Java jSF NamedQuery

@NamedQueries({ 
@NamedQuery(name = "getFactuurs", query = "SELECT f FROM Factuur f WHERE " 
+ "f.periode LIKE :periode AND " 
+ "f.carTracker.kenteken LIKE :carTrackerKenteken") 

})

所以 'periode' 在類Factuur一個整數,我試圖做這種方式:

+ "f.periode = :periode AND " 

我沒有得到任何異常,我只是從數據庫中得不到任何東西,而應該有...

+0

您確定db中至少有一條記錄與您傳入的'periode'和'carTrackerKenteken'的值相匹配嗎? – 2011-04-18 11:15:10

回答

0

JPA規範的第4.6.9節指出,LIKE運算符只能應用於表達式字符串類型:

用於在條件表達式使用比較運算符[NOT]等的語法如下:

 string_expression [NOT] LIKE pattern_value [ESCAPE escape_character] 

的string_expression必須有一個字符串值。

似乎沒有將整數轉換爲字符串的函數。如果你正在查詢一個範圍,你可能應該在應用程序中計算下限值和上限值,並用BETWEEN表達式來查詢。如果你需要用任意的LIKE表達式來查詢,那麼你的字段可能應該是字符串類型。