Hibernate - 总和两列

时间:2016-10-28 21:42:09

标签: hibernate hibernate-criteria

大家好!

我试图避免直接使用Criteria编写SQL / HQL查询,所以我想知道是否可以这样做:

我的实体:

@Entity
public class A {
   @Column
   private int a1;

   @Column
   private int a2;
   .....
}

我想做什么:

select sum(a1 + a2) from A

2 个答案:

答案 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(Projection‌​s.sum("a3"));