mysql - 如何在 hibernate 中限制小数精度

标签 mysql hibernate

我的 SQL 查询是“SELECT Productid,FORMAT(AVG(score),2) FROM Product GROUP BY Productid”

我得到的输出

1001:2.23, 1002:-2.69

在 Hibernate 中,我的查询将是 "SELECT Product.productId,FORMAT(AVG(product.score),2) FROM ProductDAO Product GROUP BY Product.productId"

但是hibernate中不支持格式化函数,有没有办法在hibernate中实现小数精度?

最佳答案

在 Hibernate 中,您可以通过指定小数精度来实现 HBM 映射中的精度和比例属性。

但是在您的情况下,由于您使用的是 AVG 函数,因此上述方法将不起作用。 您可以在 BigDecimal 中收集 AVG(score) 的值并使用 BigDecimal 的 setScale 方法。

 aNumber.setScale(2, RoundingMode.HALF_UP);

关于mysql - 如何在 hibernate 中限制小数精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19264840/

相关文章:

mysql - SQL SELECT CASE 与 SELECT

java - 使用 HQL 从它们之间具有一对多关系的连接表中进行选择

performance - 使用 JPA 进行动态更新

php - 计算有特价的天数

php - 插入 SQL 时保留 JSON 数据的顺序

java - 使用 JPA 和 hibernate 加入可选列

java - 将 AbstractTransactionalDataSourceSpringContextTests 与 Hibernate 和 DbUnit 一起使用 - 找不到插入的数据

java - Spring JPA,CrudRepository 的 save 方法是否立即提交到 DB?

mysql - 如何使用sql从其他表上的值更新表

mysql - 如何在 Fusion Tables 中编写 Where 查询