我使用实体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);
这里我明确清除以前的子集合并添加新的子对象
但删除孤儿在这里不起作用.. 只有插入查询正在运行Pls Help
cascade =“all-delete-orphan”的集合 不再由拥有实体引用
消息显示在控制台中
答案 0 :(得分:2)
看起来您用setUserMaster()
替换了加载实体中包含的集合。
使用DELETE_ORPHAN
配置集合时,无法以这种方式替换集合,您需要使用自己的方法修改现有集合。