【发布时间】:2016-05-03 14:58:19
【问题描述】:
我使用 Criteria API 创建查询,并使用 Hibernate 作为实现。数据库是 MS SQL Server 2014。
在我的数据库中,我有一个字符串字段,其中包含数字和字符串。我想将数字与数值进行比较。 在 SQL 中会是这样的:
select *
from table
where ISNUMERIC(table.value) and CONVERT(float, table.value) > 5
(不要在函数名称上引用我。)在 Criteria 查询中似乎没有直接的方法,所以我尝试使用 function() 方法:
Expression<Float> convertedExpression = criteria.function("CONVERT", Float.class, criteria.literal(Float.class), baseExpression);
但是这种方法会给出一些无用的错误消息,例如“) 附近的语法不正确”或“@P1 附近的语法不正确”。我在想这是因为传递给方法的第一个参数,它必须是我要转换为的类型。
任何帮助使 CONVERT 函数工作或完全不同的方法将不胜感激。
【问题讨论】:
标签: java hibernate jpa criteria-api