gpt4 book ai didi

hibernate - 我应该依靠脏检查吗?

转载 作者:行者123 更新时间:2023-12-02 14:12:34 32 4
gpt4 key购买 nike

我使用 Grails,它使用 Hibernate 来实现引擎盖下的持久性。

我的问题是依赖脏检查是否是一种好习惯,或者我是否应该始终明确调用 save()每次我更改实体时的方法?

更新:这个问题不是关于脏检查机制,这个问题是关于它的可靠性。也就是说,当我想更新一个实体时:

def user = User.get(1)
user.name = 'new name'
user.save() //optional

我可以省略最后一行,Hibernate 会自己检测到变化并坚持下去,但我能 100% 确定吗?

您是否总是在项目更新后显式调用 save() ?

最佳答案

所有实体插入和更新均使用 Session.save() 保存& Session.saveOrUpdate()
直到并且除非您在 session 中使用保存,他们不会被保存在DataBase了。

保存对象后,您仍在修改对象 Hibernate 的 Dirty checking将进入画面。

dirty checking , hibernate自动检测对象是否被修改(或)是否需要更新。只要对象在 persistent state IE。,
绑定(bind)到特定的 session (org.hibernate.Session)。 Hibernate 监视对象的任何更改并执行 sql。

关于hibernate - 我应该依靠脏检查吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14910376/

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