2

私はSpring-Hibernateアプリケーションで作業しています。私の質問はorphan removal、以下のコードで説明されているように関連しています。

@Entity
public class User {
    ...........
    @OneToMany(mappedBy = "user", orphanRemoval = true, cascade = CascadeType.ALL)
    List<UserRole> userRoles = new ArrayList<>();
    ..........
}

save/update Userシナリオを考える。1 つの方法は、その子オブジェクトを のようにリストから削除することuser.getUserRoles().remove(userRole)です。
もう 1 つの方法は、子リストをクリアしuser.getUserRoles().clear()てから、リクエストに含まれるユーザー ロールが何であれ、それをリストに追加するようなものです。この場合、リクエストに含まれていないユーザー ロールは によって削除されorphan removalます。

どちらがより良く、より正しいですか?

4

2 に答える 2