gpt4 book ai didi

hibernate - 合并后原始对象将变成什么

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

我对Grails中的Merge()方法有疑问,我阅读了文档,并且我知道此方法返回一个持久对象,但是我没有找到有关原始oject(detached)变成什么的任何解释。

我想举一个例子:

request_1 : usr=User.get(id); Hibernate.initialize(usr.rules) ; session.currentUser = usr
request_2 : session.currentUser.merge() // i've ignored the returned attached object
request_3 : log.info session.currentUser.rules.collect{it.authority} // Lazy loading exception

就像显示的代码一样,我强制初始化“usr”实例的“rules”集合,然后将其保存在httpSession中。
在第二个请求中,“session.usr”被分离,我对其执行了merge(),并且忽略了返回的附加对象,因为我将检查httpsession中原始分离对象的状态。
在第三个请求中,我尝试访问“规则”集合,但出现“延迟加载异常”,但是在第一个请求中,“规则”集合已加载...

最佳答案

merge()返回的对象与 session 中的实例不同,而是新实例和HTTP session 中保存的分离对象的状态的组合。您需要确保在合并后初始化关联。坦白说,执行渴望的查找程序和执行手动合并会更有效。

关于hibernate - 合并后原始对象将变成什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24369451/

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