在hibernate标准中使用sum()

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

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

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

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

 @Entity @Table('TRANSACTIONS') Class transactions { @Column("AMOUNT") private double amount; @Column("DIRECTION") private double direction; @Formula("AMOUNT * DIRECTION") private double multiplication; } 

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

预测是使用具有hibnerate标准的聚合函数的关键词。

roseindia有一个实现SELECT SUM(...)查询的简短示例 。 看起来非常接近你的问题。


这是另一个论坛主题 ,其中包含SUM(col1 * col2)表达式的工作示例,原始海报上有类似的exception问题。