2

Hibernate で Criteria API を使用して算術演算を実行したいと考えています。SQL は次のとおりです。

SELECT salary + 500 FROM EMPLOYEE;

基準を使用してこれを達成する方法は?

を使用してSALARY列のみを取得できますProjectionが、その後、その算術演算を実行する方法がわかりません: session.createCriteria(Employee.class).setProjection(Projections.projectionList().add(Projections.property("salary") )))

これについて教えてください。

よろしく、

4

2 に答える 2

3

あなたにはいくつかの可能性があります:

  • 「salary+500」select句を生成する独自のProjectionクラスを作成します。プロパティプロジェクションをテンプレートとして使用できます
  • 基準ではなくHQLを使用する
  • クエリではこれを行いませんが、Javaで行います。給与を選択し、返されたリストを調べて、リスト内のすべての給与に500を追加します。
于 2012-11-12T16:14:53.027 に答える
1

価格と数量の間で製品を見つけるために SQL プロジェクションを使用する以下の例を参照してください。

session.createCriteria(Order.class) 
        .createAlias("order", "od") 
        .setProjection( Projections.projectionList() 
            .add( Projections.groupProperty("od.orderId") ) 
            .add( Projections.groupProperty("od.rate") ) 
            .add( Projections.groupProperty("od.quantity") ) 
            .add( Projections.sqlProjection( 
                    "price * quantity as total", 
                    new String[] { "totalAmount" }, 
                    new Type[] { Hibernate.DOUBLE } 
                  ) 
            ) 
        ); 

それが役に立てば幸い。

于 2012-11-12T17:10:05.960 に答える