java - 合并或更新持久化对象

标签 java database hibernate persistence agents-jade

我有一个 hibernate 接口(interface)的 mysql 数据库,其中包含大量不同类型的对象,其中一些对象由其他代码片段定期检索和更改,这些代码片段在 JADE 代理中运行。由于检索对象的方式(在查询中,返回对象集合),它们似乎不受实体管理器的管理,并且在没有实体管理器工厂或管理器的情况下将它们传递给代理时肯定不会受到管理.

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

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

最佳答案

Hibernate 有 saveOrUpdate 方法,它可以保存对象或更新它,具体取决于具有相同 ID 的对象是否已存在:

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

关于java - 合并或更新持久化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7309344/

相关文章:

java - 将xml字符串转换为java对象: getting `details` as null?

java - java.util.TimeZone 夏令时信息如何更新?

java - Hibernate属性名称大写问题

javascript - 访问公共(public)脚本文件上的 Node 文件

java - HibernateTools 逆向工程工具没有为生成器添加 Annotation

Java + Spring + Hibernate : "order by" slow on production

java - Jbutton 在单击时由于执行的操作而挂起

java - 找不到参数的方法 lombok()

MySQL:如果在日期之后达到特定值,则获取所有行

mysql - Laravel 动态模型数据库