>我有一个父类,子类如下所示
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选项。 保存更新对我有用。