老实说,在问这个问题之前,我必须进行很多研究,但始终找不到答案。这里使用 Hibernate 6.1,互联网上的大多数文章/教程都使用旧版本的 hibernate,并且大多数方法都没有被弃用。尽管使用saveOrUpdate方法对我来说效果很好。既然被废弃了,那一定是有原因的。甚至最新版本的hibernate官方文档也使用它。(如果我在正确的文档中)。我在这里读到了另一个问题,他们说你甚至不需要使用saveor saveOrUpdate,因为 hibernate 会自动刷新对对象内字段所做的任何更新。但即使在更新对象中的值并手动刷新/刷新或提交事务之后,这种情况也不会发生。
如有帮助,将不胜感激,谢谢!
只需浏览 Hibernate 的源代码就会发现此提交是弃用这些方法的提交。该提交是此 PR的一部分,其中提到了相应的问题。不赞成这些问题的理由如下:
update() 和 saveOrUpdate() 操作本质上是 Hibernate 历史早期的一次失败实验,并在 JPA 规范中被 merge() 取代。在我看来,很明显,用户使用 merge() 遇到的问题比使用 update() 少得多,而且我认为我们可能早就应该弃用这些操作了。
save() 操作几乎与 saveOrUpdate() 相同,只是它返回一个 id。你可以像 persist() 一样使用它,但我认为 persist() 无论如何是一个更好的名字。
您可以查看该问题以获取有关该主题的更多讨论。
我在这里读到了另一个问题,他们说你甚至不需要使用 save 或 saveOrUpdate,因为 hibernate 会自动刷新对对象内字段所做的任何更新。
我从未听说过这种行为。你可能应该使用persist()作为替代save()
| 归档时间: |
|
| 查看次数: |
3182 次 |
| 最近记录: |