gpt4 book ai didi

java - 如何使用 Criteria 查询将 String 字段转换为 where 子句中的数字?

转载 作者:太空宇宙 更新时间:2023-11-04 12:39:07 26 4
gpt4 key购买 nike

我使用 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 函数正常工作或完全不同的方法将不胜感激。

最佳答案

将您的列建模为字符串 - 这样您就可以依靠条件 api 来转换为字符串。如果您期望特定的格式 - 这样做 - 我的意思是将您的 float 格式化为特定的字符串,并将其传递给条件。

关于java - 如何使用 Criteria 查询将 String 字段转换为 where 子句中的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37007604/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com