【问题标题】:Java jSF NamedQuery using an Int使用 Int 的 Java jSF NamedQuery
【发布时间】:2011-04-18 09:52:00
【问题描述】:

我正在对整数进行搜索查询。这是 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 类中的一个整数,我尝试过这样做:

    + "f.periode = :periode AND "

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

【问题讨论】:

  • 您确定数据库中至少有一条记录与您传入的periode 和carTrackerKenteken 的值匹配吗?

标签: java jsf hql named-query


【解决方案1】:

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

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

      string_expression [NOT] LIKE pattern_value [ESCAPE escape_character]

string_expression 必须有一个字符串值。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-26
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    • 2019-07-15
    • 1970-01-01
    • 2017-12-25
    • 1970-01-01
    相关资源
    最近更新 更多