将mysql查询转换为hibernate hql

将mysql查询转换为hibernate hql,mysql,hibernate,Mysql,Hibernate,例如,当我尝试自动递增字母数字Id(或数字系列)时,出现了一个问题 在Mysql“Sample”表“RefNo”列中(类型为Varchar) AB7 AB10 AB9 AB8 上面我有四个条目,现在我想检索max(或最高值) 为此,我尝试了query as=SELECT MAX(RefNo)FROM sample; 但这个结果是“AB9”,这是错误的,它应该返回“AB10”作为结果 为了在Mysql中实现这一点,我将查询修改为 =从样本中选择最大值(转换(子字符串_索引(RefNo,'B',-1

例如,当我尝试自动递增字母数字Id(或数字系列)时,出现了一个问题

在Mysql“Sample”表“RefNo”列中(类型为Varchar) AB7 AB10 AB9 AB8

上面我有四个条目,现在我想检索max(或最高值)

为此,我尝试了query as=SELECT MAX(RefNo)FROM sample; 但这个结果是“AB9”,这是错误的,它应该返回“AB10”作为结果

为了在Mysql中实现这一点,我将查询修改为 =从样本中选择最大值(转换(子字符串_索引(RefNo,'B',-1),无符号整数),其中RefNo类似于'AB%'

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

我希望您理解这个场景,并请帮助我解决这个问题。

您应该能够使用获取字符串的数字部分并将其转换为数字。诸如此类(未经测试):

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