1

Java アプリケーションの永続性を管理するために Hibernate を使用しています。A 側で定義されているエンティティ A と B の間の ManyToMany 関係を取得しました (A には B のコレクションがあります)。

テーブル B からオブジェクトを削除すると、エンティティ A のコレクションからも削除されるようにしたいのですが、Hibernate で JoinTable の外部キーを "on delete cascade" にする必要があることを定義する方法がわかりません。 "。

誰かが私を助けてくれれば幸いです。

編集: コード例:

    @Entity
    public class A {

      @ManyToMany
      @JoinTable(name = "aToB", joinColumns = { @JoinColumn(name = "aFk") }, inverseJoinColumns = { @JoinColumn(name = "bFk") })
      public Collection<B> getBs() { ... }

      public void setBs(Collection<B> bs) { ... }

    }

データベースを見ると、次のコマンドでテーブル aToB が作成されました。

    CREATE TABLE aToB
    (
      afk integer NOT NULL,
      bfk integer NOT NULL,
      CONSTRAINT aToB_pkey PRIMARY KEY (afk , bfk ),
      CONSTRAINT fk156d338f71d2c983 FOREIGN KEY (afk)
          REFERENCES a (id) MATCH SIMPLE
          ON UPDATE NO ACTION ON DELETE NO ACTION,
      CONSTRAINT fk156d338fa35ac77c FOREIGN KEY (bfk)
          REFERENCES b (id) MATCH SIMPLE
          ON UPDATE NO ACTION ON DELETE NO ACTION
    )

私が実際にbfkの外部キーに「ON DELETE CASCADE」を持つことは何ですか。

4

1 に答える 1

1

アノテーション @Cascade( CascadeType.DELETE)

コレクションの XML マッピング ファイル cascade="delete"

于 2013-02-15T13:01:02.597 に答える