2011-04-18 39 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表达式来查询,那么你的字段可能应该是字符串类型。