gpt4 book ai didi

java - hibernate 保存以第二次获取序列

转载 作者:行者123 更新时间:2023-12-01 05:59:47 24 4
gpt4 key购买 nike

我有一个像这样的类(带有 getter 和 setter,全部映射到 hibernate,每个类都有一个到 oracle DB 的序列)

 public class A{
private B b;
private C c;
}

我正在创建这个对象并将其保存到数据库中。

所以我创建一个 A 对象并用 B 对象填充它并调用

saveOrUpdate(a)

这样我就可以生成“a”和“b”序列。然后我做了一些计算并创建“C”的实例并将其设置为“a”

到目前为止,一切都很好。我现在需要获取“c”的 id,以便在刷新和提交之前进行一些检查。

但是 saveOrUpdate 在这里不起作用,因为该对象不再是 transient 的。根据 saveOrUpdate 上的 hibernate 文档:“如果该对象已在此 session 中持久化,则不执行任何操作”

有什么想法吗?

(无法发布代码,因为它太长太乱,但基本上就是这样)

最佳答案

如果C是一个hibernate映射类并且属性被正确映射,那么hibernate将检测到属性C已更改,并在 session 刷新或 Activity 事务提交时为您保存它。那么commit后就可以得到C的id了。

另一种方法是调用 saveOrUpdate(c)。在这种情况下,c 会分配一个 id,以便您可以检索它。

您需要进行哪些检查来确定您需要 c 的 ID?

关于java - hibernate 保存以第二次获取序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1314041/

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