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;
    }
}

在我调用的方法中

xsession.saveOrUpdate(employeeMaster);

在这里我明确地清除以前的子集合并添加新的子对象

但是删除孤儿在这里不起作用..只有插入查询正在运行请帮助

拥有实体不再引用具有 cascade="all-delete-orphan" 的集合

消息显示在控制台中

4

1 回答 1

2

看起来您将加载的实体中包含的集合替换为setUserMaster().

当collection配置为 时DELETE_ORPHAN,不能通过这种方式替换collection,需要使用自己的方法修改现有collection。

于 2011-02-08T09:47:31.317 回答