1

JPA は、特定のエンティティが依存する他のエンティティを自動的に永続化/更新/削除するために使用できるカスケードを提供します。Job、BankAccount、および Person (最初の 2 つのエンティティとは OneToMany 関係にあります) の 3 つのエンティティがあるとします。カスケード イベントがない場合は、次のように記述します。

person.addJob(job);
person.addBankAccount(bankAccount);

em.persist(job);
em.persist(bankAccount);
em.persist(person);

カスケードされたイベント (たとえば、CascadeType.PERSIST の型) により、最初の 2 つの persist() 呼び出しを省略でき、1 回の呼び出しでem.persist(person);依存エンティティも保持されるようになります。

これで、エンティティに作用するコードが、エンティティの内部と密接に結合されます。エンティティを管理する方法は、エンティティ内で使用した注釈と密接に結びついています。追加の結合が発生するため、これは悪い習慣と見なすことができますか?

4

1 に答える 1

3

そうではありませんが、カスケード操作を利用することはかなり標準的な方法です。

ドメインでアノテーションが付けられたカスケードが実際に発生することを確認する統合テストを作成する必要があります。

于 2012-11-24T22:37:42.637 に答える