gpt4 book ai didi

hibernate - grails/GORM实例使用get vs read读取的域之间的差异

转载 作者:行者123 更新时间:2023-12-02 15:43:49 25 4
gpt4 key购买 nike

我知道DomainClass.get()和DomainClass.read()之间的功能差异。属性更改后,“读取”会在 session 刷新时停止从自动保存实例的休眠状态。

但是我找不到两个返回的实例之间的区别
改变行为。

Grails为域实例提供了一个属性“instanceGormInstanceApi”,我认为该属性必须包含答案,但是到目前为止,我仍无法弄清楚该对象的区别。

最佳答案

经过进一步调查后,只读行为将挂接到实例所在的 session 。

这等效于使对象“读取”的内容:

DomainClass.withSession{session->
session.setReadOnly(myInstance,true)
session.setFlushMode(FlushMode.MANUAL)//this isn't always necessary?
}

请参阅 https://github.com/grails/gorm-hibernate5/blob/master/grails-datastore-gorm-hibernate5/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernateUtil.java上GrailsHibernateUtils中的源代码方法setObjectToReadOnly

“读取”的不幸局限性是它不会影响关系。因此,如果让“ parent ”阅读,“ child ”对象仍将自动保存并被独立对待。从grails文档中...
 There is one exception to this though - any associated collections, for 
example an Author's books collection, will participate in automatic
flushing and dirty detection.

关于hibernate - grails/GORM实例使用get vs read读取的域之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52880275/

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