在休眠标准中使用sum()

pan*_*gdu 19 java sql hibernate

如何将sql查询select sum(amount * direction) from transactions写入hibernate标准?

pan*_*gdu 14

我想我找到了答案.您必须使用Projection.sqlProjection()而不是Projections.sum().例:

.setProjection(Projections.sqlProjection("sum(cast(amount as signed)* direction) as amntDir", new String[] {"amntDir"} , new Type[] {Hibernate.DOUBLE}));
Run Code Online (Sandbox Code Playgroud)

  • 你能找到答案吗? - 你的初始查询是什么:createQuery("....") - 结果是什么?(进入amntDir?) - 你如何使用结果? (2认同)

小智 6

我认为你需要的是配方.像这样的东西,

@Entity
@Table('TRANSACTIONS')
Class transactions {

     @Column("AMOUNT")
     private double amount;

     @Column("DIRECTION")
     private double direction;

     @Formula("AMOUNT * DIRECTION")
     private double multiplication;

}
Run Code Online (Sandbox Code Playgroud)

并将乘法列添加到投影列表中.