0

Hibernateでhqlクエリを使用してカスケード保存または更新するにはどうすればよいですか?また、すべての子テーブルフィールドを更新する代わりに、特定のフィールドにカスケード更新を使用するにはどうすればよいですか?

たとえば、テーブルUser has
userName varchar(10)
Password varchar(10)

テーブルUserAccessRightsの
ユーザー名はvarchar(10)ユーザーテーブルのFK
パスワードvarchar(10)ユーザーテーブルのFK
Authpassword varchar(10)

カスケード更新は、パスワードではなくユーザー名に対してのみ発生する必要があります。どうすればこれを達成できますか?

4

2 に答える 2

2

あなたはそうしない。

カスケードは Hibernate 構成の問題 (すなわち、HBM または注釈) であるため、データはカスケードの処理のために Java に返される必要があります。HQL での UPDATE/DELETE 行の変更は、完全に SQL サーバー上で行われます (JPA は SQL API または SQL 標準ではなく Java API であるため、SQL サーバーは JPA カスケードを認識しません)。

于 2012-09-21T10:48:31.553 に答える
1

hbm ファイルでカスケード設定を指定する必要があると思います。

<set name="columnrecord" cascade="save-update" table="..."...>
      <key>
            <column name="COLUMN_NAME" not-null="true" />
      </key>
      <one-to-many class="..." />
</set>
于 2012-09-21T10:49:17.860 に答える