我有一个java对象设置要更新。我使用SaveOrUpdate方法来做到这一点。它可以很好地更新孩子,但是我的要求存在问题。
因为如果删除了一个孩子,我需要从数据库中删除一个孩子。
请有人有个好主意实现这个吗?
前: -
项目与人有一对多的关系。
项目有一个像
这样的属性 class Project {
long id;
Set<People> people;
......
}
public void updateProject(Project project) {
try {
getCurrentSession().saveOrUpdate(project);
} catch (Exception ex) {
logger.error(ex);
}
项目对象包含人员设置,但从中删除了一些人ID。
我需要通过删除不需要的人ID来更新项目
谢谢
答案 0 :(得分:1)
我假设你已经在你的Project实体上启用了级联,所以我猜你需要在关系中添加orphanRemoval属性。 您的案例示例如下:
@OneToMany(cascade={CascadeType.ALL}, orphanRemoval=true)
答案 1 :(得分:0)
参考代码:使用&#39; all-delete-orphan&#39;配置级联删除孤儿数据......
<hibernate-mapping>
<class name="User" table="UTABLE" >
<id name="UID" column="UID"/>
<property name="Name" column="F_Name"/>
<set name="phones" table="PHONE_NUMBERS" cascade="all-delete-orphan" lazy="true">
<key column="UID"/>
<one-to-many class="PhoneNumber" />
</set>
</class>
</hibernate-mapping>