gpt4 book ai didi

java - Hibernate - 控制插入和更新查询

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:28:53 24 4
gpt4 key购买 nike

考虑以下关联书有一对多的章节

如果我执行:

session.save(book)
session.save(chapter)
session.getTransaction().commit()

Hibernate 生成 Book 的插入查询和 Chapter 的插入查询

但是如果我执行:

session.save(chapter)
session.save(book)
session.getTransaction().commit()

Hibernate 执行章节插入查询、书籍插入查询和章节更新查询。

有没有办法在 2 次插入而不是 2 次插入和 1 次更新中做到这一点?(假设主键生成类似于 Identity 和 Chapter.Book 可以为空)

最佳答案

那是因为您可能有 Book 1..n Chapter,其中 cascade 设置为(至少)PERSIST。这意味着每当一本书被保存时,它的所有章节也会被保存。

所以您实际上是在尝试将章节保存两次。你不需要第二次保存(在第二个例子中)

第一个示例以这种方式工作,因为章节已与 session 相关联(也许您没有覆盖 hashCode()equals() 方法),而 save() 根本不做任何事情。

不过这些都是猜测。您必须显示您的映射。

关于java - Hibernate - 控制插入和更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2713584/

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