1

在我的 grails 应用程序中,我们正在调用一个可能更新数千条记录的存储过程。在存储过程调用之后,我需要将其中许多记录以 json 格式发送回 UI。但是,在存储过程完成后,休眠继续查看旧对象。我已经在每个对象上尝试了 evict() 并使用 HQL 再次加载这些对象,但无济于事。

解决这个问题的最佳方法是什么。

4

1 回答 1

2

答案在于问题。:) 使用refresh()。参考这个

如果要完全清除休眠会话,则可以使用session.clear(). 参考清楚。为此,您需要掌握当前会话,您可以通过两种方式执行此操作:

  1. 获取sessionFactory,获取当前会话并清除相同。 grailsApplication.mainContext.sessionFactory.currentSession.clear()

  2. 使用withSession闭包。

    DomainABC.withSession{s-> s.clear()}

于 2013-07-19T03:47:24.527 回答