4

マップされた hibernate クラスが与えられた場合:

@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 などの集計関数がありますが、基本的な数学演算子はありませんか?

4

2 に答える 2

6

この計算値である新しいプロパティをクラスに作成できます。そのプロパティの式属性を指定するだけです。次に、このプロパティを基準に含めることができます。

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

formula (オプション): 計算されたプロパティの値を定義する SQL 式。計算されたプロパティには、独自の列マッピングがありません。

于 2009-04-14T20:04:10.470 に答える
1

あなたはいつでもそれをsqlとして追加することができます私はいくつかのsqlProjection/sqlRestrictionメソッドがあったと思います

于 2009-04-14T11:30:22.840 に答える