休眠保存是否需要合并? 级联如何工作?



>我有一个父类,子类如下所示

class Parent{
private child; 
} 
Class Child {........ some variables; }

当对UI进行任何更改时,我们将合并旧对象和新对象。 现在,在使用休眠保存数据时,它将数据传递到 DAO 层,但保存在数据中。

我需要使用合并功能吗?

为了清楚起见,我们假设您在数据代码中执行以下操作:

public void updateMyEntity(TheEntity oldEntity) {
final Session session = openSession();
try {
session.getTransaction().begin();
TheEntity attachedEntity = session.find( TheEntity.class, oldEntity.getId() );
copyDataFromDetachedEntityToAttached( oldEntity, attachedEntity );
session.getTransaction().commit();        
}
catch ( Exception e ) {
if ( session != null && session.getTransaction().isActive() ) {
session.getTransaction().rollback();
}
throw e;
}
finally {
if ( session != null && session.isOpen() ) {
session.close();
}
}
}

如果TheEntity由一些基本或启用级联的关联组成,则可以轻松忽略合并调用,而只需更改附加的对象。 在提交期间,Hibernate将执行刷新,该刷新将隐式合并对持久性上下文中任何附加对象所做的更改。

现在需要注意的是,TheEntity是否有任何未启用级联的关联。 如果是这种情况,则需要为任何新添加的关联处理适当的持久性。

浏览了谷歌上的casaceade选项。 保存更新对我有用。