java在Hibernate中更新包含列表的对象
在我的GWT应用程序中,我通过Hibernate将一个对象传递给服务器进行持久化。此对象包含另一个对象的列表。列表中的每个元素都包含一个映射,它是另一个Hibernate表
为了完成这笔交易,我的理解是,我必须首先:
- 通过查找从数据库中获取持久对象 冬眠
- 修改对象
- 通过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) 个答案