gpt4 book ai didi

java - Hibernate session 方法更新对象

转载 作者:行者123 更新时间:2023-11-30 05:59:43 27 4
gpt4 key购买 nike

我需要 Hibernate 托管对象实例的路线图。

首先,我创建一个具有初始属性的实例,并将该对象保留在数据库中。然后与该对象关联的 session 将被关闭。但是,我仍然序列化我的对象,并在下一步反序列化它,调用一些 setter ,再次,我需要更新数据库中发生的更改。

我应该使用哪些 Hibernate session 方法?第一步是 persist() 或 save(),第二步是 saveOrUpdate()?

事实上,我发现 saveOrUpdate() 可以在每个步骤中使用。唯一的问题是,据我所知,它不返回关联的 PK。你知道当我们持久化对象时如何获取它吗?第一次?我想,在我们持久化对象之后,它会得到一个 id 字段集,所以调用 saveOrUpdate(myObject) 后,myObject.getId() 返回 PK?

你会推荐什么?

最佳答案

如果我确实理解您的问题,您想将 transient 对象重新附加到新的 hibernate session 。那么你应该使用Session.merge(object)

merge

Object merge(Object object) throws HibernateException

Copy the state of the given object onto the persistent object with the same identifier. If there is no persistent instance currently associated with the session, it will be loaded. Return the persistent instance. If the given instance is unsaved, save a copy of and return it as a newly persistent instance. The given instance does not become associated with the session. This operation cascades to associated instances if the association is mapped with cascade="merge".

关于java - Hibernate session 方法更新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2577605/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com