Hibernate删除和更新

时间:2013-07-29 06:36:38

标签: java hibernate oracle11g hibernate-mapping

我有一个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来更新项目

谢谢

2 个答案:

答案 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>