有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Hibernate中更新包含列表的对象

在我的GWT应用程序中,我通过Hibernate将一个对象传递给服务器进行持久化。此对象包含另一个对象的列表。列表中的每个元素都包含一个映射,它是另一个Hibernate表

为了完成这笔交易,我的理解是,我必须首先:

  1. 通过查找从数据库中获取持久对象 冬眠
  2. 修改对象
  3. 通过Hibernate更新对象

下面是一些关于我正在做什么的快速代码:

public void saveOrUpdateObject(final Foo foo)
{
   Session session = sessionFactory.getCurrentSession();
   session.beginTransaction();

   Object lookup = myDAO.getObject(foo.getUniqueValue());

   if (lookup != null) {
      lookup.getList().clear();
      lookup.addAll(foo.getList());

      myDAO.update(lookup);
   }
   else {
      myDAO.save(foo);
   }
}

使用这种方法,我偶尔会得到一个HibernateeException:

org.hibernate.HibernateException: A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance: my.Foo.list

使用Hibernate更新包含集合的对象的正确方法是什么


共 (0) 个答案