【发布时间】:2011-08-09 17:05:32
【问题描述】:
在 saveOrUpdate 之前合并 2 个休眠实体的最佳方法是什么。
我从用户那里得到一个实体(提交的表单),我想使用 saveOrUpdate 保存它。
如果用户 bean 中不存在这些字段,Hibernate 会将所有字段设置为空(用户只能更新部分数据)。
这就是我想要的样子:
//this is the data the submitted from the user form.
PersonEntity entityFromTheClient = getPersonEntityFromClient();
//this is the data that i pull from the db for the merge
PersonEntity entityFromDb = getPersonEntityFromDb(entityFromTheClient.getID()); //entityFromTheClient.getID() = PK
//this is the method that i need to merge entityFromTheClient into entityFromDb
PersonEntity dataMerged = (PersonEntity)SomeUtill.merge(entityFromTheClient,entityFromDb);
//this will save the merged data.
session.saveOrUpdate(dataMerged);
还要注意,Person 可以包含其他实体成员 @OneToMany @ManyToMany 和 @ManyToOne
正如您已经了解的那样,这种情况仅用于更新。插入将是一个不同的故事。
谢谢
【问题讨论】:
标签: java hibernate merge entity