在hibernate查询语言中舍入到小数点后2位

嗨,有人可以帮我如何在hql中舍入到2位小数?
我在网上找不到任何东西。 以下是我的查询:

Select p.amount as amt,p.desc from pay p, register r where r.type=?1 and r.code=?2; 

如果有人可以提供帮助,我会很高兴的。

使用的技术:hibernate,spring,java,primefaces 4.0,oracle数据库

我一直在努力解决这个问题,终于找到了以下解决方案:

如果你想要更加独立于数据库并且特别想要支持Postgres或Oracle DB,你可以使用floor函数进行舍入,这非常通用,并且不会为不同的实现留下太多空间,这意味着这可能适用于所有数据库(使用Postgres和MySQL)。

该片段执行舍入为2位数并以绝对值舍入。 您可以轻松地根据您的需求进行调整。

使用100.0将除法除以100。 这将确保您总是得到一个双倍的结果,如果您在舍入值上建立一个总和,这一点尤为重要。

 floor(abs(value) * 100 + 0.5)/100.0 * sign(value) 

在属性上使用FORMAT函数到2个小数点

 Select FORMAT(p.amount,2) as amt,p.desc from pay p, register r where r.type=?1 and r.code=?2; 

您也可以在映射文件中指定相同的内容,如下所示

     

这对我有用

 cast(value as decimal(9,2))