2017-12-09 11 views
0

私は休止状態のアプリケーションを最適化しようとしています。多くの場所では、エンティティのコレクションを追加/更新する際に、まずそれをクリアしてから、それらをすべて入力から再度追加します。どういうわけか、良い方法があるはずですが、まだ見つかりませんでした。Hibernate:エンティティのコレクションを更新する正しい方法は何ですか?

あなたのアプリケーションではどうしますか?

答えて

0

私はコレクションと思いますが、@OneToManyの関係の「多」という意味です。この場合

、あなたが所有しているクラスの外部参照に@OneToMany注釈で値orphanRemovalを指定することができます。

public class Parent { 

    // ... 

    @OneToMany(mappedBy = "whatever", orphanRemoval = true, cascade = CascadeType.ALL) 
    private List<Child> children; 

} 

orphanRemovalから削除されているすべての既存の子エンティティを削除するには、休止状態を指示します親エンティティが永続化されているときのコレクション。

+0

orphanRemoval = trueが設定されていますが、なぜすべてのエントリを削除して元に戻す必要があるのですか。それは正しい方法ですか?この場合、変更がなくてもクリアして追加します。効率的に更新または挿入する必要があるかどうかを確認する方法はありませんか? – Manoj

+0

を削除して再追加する必要はありません。カスケード。すべてが子供たちを更新します。 –

+0

可能ならば私に例を教えてもらえますか? – Manoj

関連する問題