【问题标题】:Math operators in Criteria queries条件查询中的数学运算符
【发布时间】:2010-10-19 07:51:04
【问题描述】:

给定映射的休眠类:

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

  private Integer aValue;
  private Integer bValue;
}

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

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

并得到计算结果。

是否可以使用 Criteria API 做类似的事情?我还没有找到一种通过 Criteria API 使用数学运算的方法。我们有 sum、avg 等聚合函数,但没有基本的数学运算符?

【问题讨论】:

    标签: java hibernate criteria


    【解决方案1】:

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

    <property name="product" formula="aValue*bValue" />
    

    公式(可选):定义计算属性值的 SQL 表达式。计算属性没有自己的列映射。

    【讨论】:

      【解决方案2】:

      你总是可以将它添加为 sql 我认为有一些 sqlProjection/sqlRestriction 方法

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-14
        • 1970-01-01
        • 1970-01-01
        • 2011-04-26
        • 2015-02-04
        • 2020-11-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多