0

エンティティEmployeeを使用していて、その中にUserMasterのリストが定義されています

public class EmployeeMaster{
    private String employee_id;
    private String first_name;
    private String last_name;
    private List<UserMaster> userMaster = new ArrayList<UserMaster>();

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "employeeMaster")
    @Cascade(value = {CascadeType.SAVE_UPDATE,CascadeType.DELETE_ORPHAN})   
    public  List<UserMaster> getUserMaster() {
        return userMaster;
    }
    public void setUserMaster(List<UserMaster> userMaster) {
        this.userMaster = userMaster;
    }
}

私のメソッドでim呼び出し

xsession.saveOrUpdate(employeeMaster);

ここでは、以前の子コレクションを明示的にクリアし、新しい子オブジェクトを追加します

しかし、ここでは孤立の削除は機能していません..挿入クエリのみが実行されていますPlsヘルプ

cascade = "all-delete-orphan"のコレクションは、所有するエンティティによって参照されなくなりました

メッセージがコンソールに表示されています

4

1 に答える 1

2

ロードされたエンティティに含まれるコレクションを。に置き換えたようですsetUserMaster()

コレクションがで構成されている場合DELETE_ORPHAN、この方法でコレクションを置き換えることはできません。独自のメソッドを使用して既存のコレクションを変更する必要があります。

于 2011-02-08T09:47:31.317 に答える