首页 > 解决方案 > 使用单个查询获取最小和最大列值

问题描述

如何通过使用 jpa 而不是使用本机查询来获取min和价值?max

必须通过单个事务获取结果。

相对sql查询:

SELECT min(price), max(price) FROM product

我尝试使用此代码

criteria.setProjection(Projections.min("price"));
Integer min = (Integer) criteria.uniqueResult();
...
criteria.setProjection(Projections.max("price"));
Integer max = (Integer) criteria.uniqueResult();

但这似乎太奇怪了,无法执行两次。

标签: javahibernateentityjpa-2.0criteria

解决方案


使用投影列表:

criteria.setProjection(
  Projections.projectionList()
    .add(Projections.min("price"))
    .add(Projections.max("price"))
);

推荐阅读