gpt4 book ai didi

grails - 告诉我有没有脏东西?

转载 作者:行者123 更新时间:2023-12-04 05:56:14 24 4
gpt4 key购买 nike

Grails 提供了一个 isDirty method可以在域对象上调用。如何修改 Grails 域模型系统,以便可以简单地调用一个方法来确定是否有任何域对象是脏的。

我正在为一些我无法确定的“未保存的 transient 实例”错误而苦苦挣扎,很高兴知道什么是脏的。有没有一种优雅的方法可以用 groovy 做到这一点?

最佳答案

将此添加到 BootStrap.groovy:

import org.hibernate.Session

Session.metaClass.isDirty = { ->
delegate.persistenceContext.entitiesByKey.values().any { it.isDirty() }
}

这增加了一个 isDirty()休眠 session 的方法,检查顶级实例或集合中的实例是否脏,您可以将它与 withSession 一起使用,例如
boolean dirty = SomeDomainClass.withSession { session -> session.isDirty() }

或者如果您可以访问 sessionFactory bean(例如来自 def sessionFactory 依赖注入(inject))
boolean dirty = sessionFactory.currentSession.isDirty()

关于grails - 告诉我有没有脏东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8691647/

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