2009-04-14 10 views
3

を照会します。数学演算子は、マッピングされた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などの集計関数はありますが、基本的な演算子はありません。

答えて

5

あなたはこの計算値は、あなたのクラスで新しいプロパティを作ることができなかったと思うSQLとして追加することができます。そのプロパティの式属性を指定するだけです。次に、このプロパティを条件に含めることができます。

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

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

1

あなたはいつも、私はいくつかのsqlProjection/sqlRestriction方法

関連する問題