大家好!
我试图避免直接使用Criteria编写SQL / HQL查询,所以我想知道是否可以这样做:
我的实体:
@Entity
public class A {
@Column
private int a1;
@Column
private int a2;
.....
}
我想做什么:
select sum(a1 + a2) from A
答案 0 :(得分:0)
直接来自Hibernate的文档:
HQL查询甚至可以返回聚合函数的结果 属性:
选择avg(cat.weight),sum(cat.weight),max(cat.weight),count(cat) 来自猫猫
支持的聚合函数是:
avg(...), sum(...), min(...), max(...) count(*)
所以SELECT sum(e.a1+e.a2) FROM Entity e
应该没问题。
答案 1 :(得分:0)
经过一些研究,可以使用Formula
注释来完成:
@Entity
public class A {
@Column(name ="a1")
private int a1;
@Column(name ="a2")
private int a2;
@Formula("a1 + a2")
private int a3;
.....
}
在标准中:
Criteria cr = getInstanciaCriteria(A.class);
cr.setProjection(Projections.projectionList().add(Projections.sum("a3"));