0

2つのエンティティがあります。

public class User {
  @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
  @JoinColumn(name = "user_id", insertable = true, updatable = true)
  @ElementList(name = "tabledata")
  public List<MyUserTableData> tableData = new ArrayList<MyUserTableData>();
}

public class MyUserTableData {
  public Long user_id;
}

私が行うアクションは、u.tableDataからエントリを削除してから、EntityManagerを呼び出してmerge(u)することです。

OpenJPAは、MyUserTableDataの対応するレコードにuser_id = "null"を設定することにより、Userオブジェクトからエントリーを削除します。

しかし、私が欲しいのは、エントリがユーザーから削除された場合、列user_idをNULLにするだけでなく、MyUserTableDataからレコードも削除する必要があるということです。

列にnullを入力する代わりに、OpenJPAにOneToMany関連のエントリを削除させるにはどうすればよいですか?

データベーススキーマが不良であると想定する回答は受け付けません:)テーブルMyUserTableDataは基本的に、ユーザーを別のエンティティに接続する外部キーテーブルですが、外部キーよりも多くの情報を保持し、メタデータを追加します。ユーザーにも他のエンティティにも属していない外部キー。

ありがとう!

セバスチャン

4

1 に答える 1

0

私は自分の問題を解決することができました:

http://openjpa.apache.org/builds/1.0.4/apache-openjpa-1.0.4/docs/manual/manual.html#dependent

@ElementDependent=>は私が望むことを正確に実行します。

于 2012-10-04T12:30:08.273 に答える