3

我有一个休眠接口的 mysql 数据库,其中加载了不同类型的对象,其中一些对象由在 JADE 代理中运行的其他代码片段定期检索和更改。由于检索对象的方式(在查询中,返回对象集合),它们似乎不受实体管理器的管理,并且当它们被传递给没有实体管理器工厂或管理器的代理时绝对不受管理.

数据库中的对象在代理之间传递,在返回数据库之前,此时,我想更新数据库中对象的版本 - 但每次合并对象时,它都会在数据库。

我很确定我没有正确使用合并方法。谁能建议一个好方法,我可以将更新的对象与现有的数据库对象结合起来,而无需事先知道对象的哪些属性已更改?可能类似于搜索现有对象并将其删除,然后添加新对象,但我不确定如何在不弄乱 PKey 等的情况下执行此操作

4

1 回答 1

0

Hibernate 有 saveOrUpdate 方法,它要么保存对象,要么更新它,这取决于是否已经存在具有相同 ID 的对象:

http://docs.jboss.org/hibernate/core/3.3/reference/en/html/objectstate.html#objectstate-saveorupdate

于 2011-09-06T05:47:56.610 回答