在 grails 域中,a 已实现 beforeDelete
如下
class Shop {
def beforeDelete() {
Shop.withNewSession {
Client.findAllByShop(this)*.shop = null
}
}
}
但是客户端商店 null 值不会持久保存到数据库中。
如果我添加手动 session 刷新
class Shop {
def beforeDelete() {
Shop.withNewSession { s2->
Client.findAllByShop(this)*.shop = null
s2.flush()
s2.clear()
}
}
}
它有效,客户端商店值在数据库中为空。
这是 Grails 错误还是我误解了文档? withNewSession
不是意味着自动刷新吗?
最佳答案
文档(向下滚动到 beforeDelete
示例 here )似乎暗示不需要刷新或清除 session 。
Burt Beckwith还在 Grails 邮件列表上指出(请参阅线程 here ),在 withNewSession 中不需要手动调用
关闭。flush()
和 clear()
话虽如此,从 Grails 2.2.1 开始,似乎确实存在使用 withNewSession
的错误报告(请参阅详细信息 here)。
关于hibernate - Grails withNewSession 不会刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12750637/