0

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

谢谢

4

2 回答 2

1

我假设你已经在你的项目实体上启用了级联,所以我的猜测是你需要将 orphanRemoval 属性添加到关系中。您的案例示例是:

@OneToMany(cascade={CascadeType.ALL}, orphanRemoval=true)
于 2013-07-29T06:43:25.543 回答
0

参考代码: 使用 'all-delete-orphan' 配置级联以删除孤立数据...

<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>
于 2013-07-29T12:06:39.993 回答