我想使用Hibernate Criteria实现以下SQL查询:
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name <operator> value
GROUP BY column_name
我试图用 hibernate 标准来实现这一点,但是没有成功。
谁能给我一个例子,如何用 hibernate 标准来做到这一点?
谢谢!
最佳答案
请引用this示例。主要要点是使用groupProperty()
以及Projections类提供的相关聚合函数。
例如 :
SELECT column_name, max(column_name) , min (column_name) , count(column_name)
FROM table_name
WHERE column_name > xxxxx
GROUP BY column_name
其等效标准对象是:
List result = session.createCriteria(SomeTable.class)
.add(Restrictions.ge("someColumn", xxxxx))
.setProjection(Projections.projectionList()
.add(Projections.groupProperty("someColumn"))
.add(Projections.max("someColumn"))
.add(Projections.min("someColumn"))
.add(Projections.count("someColumn"))
).list();