15

私は次のHQLを持っています:

String hql = "UPDATE Buchung as b " +
             "set STORNO = :Storno " +
             "where ID = :BuchungID";

HQLの複数の列を更新することは可能ですか?例えば:

String hql = "UPDATE Buchung as b " +
              "set STORNO = :Storno " +
              "set NAME = :Name " +
               ......  
              "where ID = :BuchungID";

私はMSSQLでそれを行う方法を知っていますが、Hibernateでそれを行う方法を知りません。

4

3 に答える 3

31

この場合、HQL は SQL と同じです。コンマを使用して列を区切るだけです。

String hql = "UPDATE Buchung as b set " +
          "STORNO = :Storno," +
          "NAME = :Name " +
           ......  
          "where ID = :BuchungID";
于 2012-09-06T09:02:51.660 に答える
3

構文は SQL 構文に似ていますが、列の代わりにマップされたフィールド/プロパティがあります。

update Buchung set storNo = :storno, name = :name where id = :buchungID

単一のエンティティ インスタンスを変更することが目的の場合は、

Buchung b = (Buchung) session.get(Buchung.class, buchungId);
b.setStorNo(newStorno);
b.setName(newName);
于 2012-09-06T09:03:39.307 に答える