标签: java hibernate grails stored-procedures gorm
在我的grails应用程序中,我们调用的存储过程可能会更新数千条记录。在存储过程调用之后,我需要以json格式将许多这些记录发送回UI。但是,在存储过程完成后,hibernate继续看到旧对象。我已经在每个对象上尝试了evict()并使用HQL再次加载它们,但没有用。
解决这个问题的最佳途径是什么。
答案 0 :(得分:2)
答案在于问题。 :)使用refresh()。请参阅this。
refresh()
如果要完全清除hibernate会话,可以使用session.clear()。请参阅clear。 为此,您需要掌握当前会话,您可以通过两种方式进行:
session.clear()
抓住sessionFactory,获取当前会话并清除相同内容。 grailsApplication.mainContext.sessionFactory.currentSession.clear()
sessionFactory
grailsApplication.mainContext.sessionFactory.currentSession.clear()
使用withSession关闭。
withSession
DomainABC.withSession{s-> s.clear()}