hibernate - 为什么 hibernate 在 SAVE 之前执行 SELECT?

标签 hibernate optimization

为什么 hibernate 在保存对象之前进行选择?

我在互联网上找不到有用的信息。这是每次保存前的正常行为吗?我找到了这个主题,select Query Run for hibernateTemplate.save() - 保存,但我不认为这个答案是“确定的”。我的意思是,如果我想在保存每个对象之前避免这种选择,我们是否必须使用版本控制?

我将不胜感激所有的解释或链接。

最佳答案

所以 Julia 是对的,使用分配了 ID 的实体调用 Session.save() 会导致 hibernate 执行 SELECT,然后执行 INSERT。幸运的是,有两种解决方法:

  • 不要预先分配您的 ID(这对我来说不是一个选择)
  • 调用 Session.persist() 而不是 Session.save()

第二个选项也可以与 Envers 无缝协作。

希望这可以节省其他人的狩猎时间。

关于hibernate - 为什么 hibernate 在 SAVE 之前执行 SELECT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5590881/

相关文章:

java - 使用 PostgreSQL 和 SQL Server hibernate UUID

java - Hibernate 多个子查询

optimization - 进程与线程

c++ - AMPL API C++ - 如何设置变量的初始猜测?

java - Hibernate List<String> Java 持久性 1.0

hibernate - 如何使用 JPA CriteriaBuilder 查询执行外连接?

c - 快速值检查?

javascript - 改进我的文件 i/o 算法

c - 哪个更快?

eclipse - 使用 Maven 和 m2e 插件在 Eclipse 中添加 hibernate 依赖项