使用Int的Java jSF NamedQuery

时间:2011-04-18 09:52:00

标签: java jsf hql named-query

我正在对整数进行搜索查询。这是Factuur类中的NamedQuery:

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

})

所以'periode'是Factuur类中的Integer,我试过这样做:

    + "f.periode = :periode AND "

我没有得到异常,我只是从数据库中得不到任何东西,而应该有......

1 个答案:

答案 0 :(得分:0)

JPA规范的第4.6.9节规定LIKE运算符只能应用于string类型的表达式:

  

在条件表达式中使用比较运算符[NOT] LIKE的语法如下:

      string_expression [NOT] LIKE pattern_value [ESCAPE escape_character]
     

string_expression必须具有字符串值。

似乎没有将整数转换为字符串的函数。如果要查询范围,则应该计算应用程序中的下限值和上限值,并使用BETWEEN表达式进行查询。如果需要使用任意LIKE表达式进行查询,那么您的字段可能应该是字符串类型。