2

単純なクエリを休止状態に変換したい

INSERT INTO TRXENTRIES (AMOUNT, BALANCE) 
VALUES (2500, (SELECT CURRENTBALANCE FROM CUSTOMER WHERE CUSTOMERID=1)+2500))

save()を使用した休止状態の代替ソリューションは何ですか?

私を更新してください!

4

1 に答える 1

0

絶対です:

  1. INSERT テーブルをマップするエンティティを作成します (つまり、TrxEntry)
  2. オブジェクトを埋める HQL クエリを作成する
  3. session.merge() を使用してエンティティを保存する

または、セッション オブジェクトのメソッド createSqlQuery を使用して SQL クエリを実行し、session.executeUpdate() でそれらを完了することができます。

サンプル:

エンティティ TrxEntry:

public class TrxEntry {
    private Double amount;
    private Double balance;

    -- add your get / set properties

    public Trxentry (Double amount, Double balance) {
        this.amount = amount;
        this.balance = balance;
    }
}

本社:

String hql = "select new TrxEntry(o.amount, o.balance)
from otherEntry o";

o.balance を別のサブクエリとして計算したい場合は、問題なく実行できます

クエリの結果が入ります

Query q = session.createQuery(hql);
session.merge(q);

Merge は、エンティティを保存するために提供します

于 2013-08-27T09:32:18.300 に答える