Criteria查询中的数学运算符

Mor*_*erg 3 java hibernate criteria

给定映射的hibernate类:

@Entity
public class MyTestClass {
  /* id and stuff */

  private Integer aValue;
  private Integer bValue;
}
Run Code Online (Sandbox Code Playgroud)

您可以使用HQL执行以下操作:

Query query 
  = getCurrentSession().createQuery("select aValue * bValue from MyTestClass");
List<Double> resultList = query.list;
Run Code Online (Sandbox Code Playgroud)

并获得计算结果.

是否可以使用Criteria API执行类似的操作?我还没有找到一种方法来使用Criteria API进行数学运算.我们有总和函数,如sum,avg等,但不是基本的数学运算符?

Mik*_*one 5

您可以在类中创建一个属于此计算值的新属性.只需指定该属性的公式属性即可.然后,您可以在Criteria中包含此属性.

<property name="product" formula="aValue*bValue" />
Run Code Online (Sandbox Code Playgroud)

formula(可选):一个SQL表达式,用于定义计算属性的值.计算属性没有自己的列映射.