将mysql查询转换为hibernate hql

时间:2012-09-25 12:45:34

标签: mysql hibernate

我尝试自动增加字母数字Id(或数字系列)时出现问题

在Mysql中的

" Sample"表' RefNo'列(Varchar类型)

AB7 AB10 AB9 AB8

上面我有四个条目现在我想要检索最大值(或最高值)。

为此我尝试了查询as = SELECT MAX(RefNo)FROM sample; 但是这给出了结果' AB9'这是错误的,它应该返回' AB10'结果。

为了在Mysql中得到这个,我已经将Query修改为  = SELECT MAX(CONVERT(SUBSTRING_INDEX(RefNo,' B', - 1),UNSIGNED INTEGER))来自样本,其中RefNo喜欢' AB%'

这项工作在mysql中很好但在hibernate(hql)查询中不受支持。

我希望你了解这个场景,请帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

您应该能够使用substring and cast来获取字符串的数字部分并将其强制转换为数字。这样的事情(未经测试):

select max(cast(substring(sample.refNo, 3) as INTEGER)) from Sample sample ...