【问题标题】:How to round value in Criteria API如何在 Criteria API 中舍入值
【发布时间】:2020-07-08 13:39:07
【问题描述】:

是否可以在标准 api 中舍入值

例如我有双值 a = 4.43444;

我想在标准 api 中将其设为 4.4。

这个值来自计算:

cb.quot(cb.sum(
                cb.avg(toBigDecimalProductReviewRating(cb, joinProductReview)),
                cb.avg(joinProductDefaultRating.get(ProductDefaultRating_.DEFAULT_AVG_RATING))), 2)

【问题讨论】:

  • 价值从何而来?来自数据库?
  • 它是根据来自 db 的值计算得出的
  • JPQL 或 Criteria API 中没有 round 函数。你的数据库有round函数吗?
  • 你说的是自定义函数还是原生sql函数?因为我们使用的是 postgres,所以 postgres 中有一个随机函数
  • 那么您应该阅读本指南:thorben-janssen.com/…

标签: java hibernate orm criteria-api


【解决方案1】:

对于 PostgreSQL:

cb.function("round", Number.class, expression);

效果很好。

对于 2 位小数:

cb.function("round", Number.class, expression, 2);

【讨论】:

    猜你喜欢
    • 2018-08-07
    • 2015-12-11
    • 2018-03-18
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多