0
在我的grails應用程序中,我們正在調用一個可能會更新數千條記錄的存儲過程。在存儲過程調用之後,我需要將這些記錄中的很多以json格式發送回UI。但是,hibernate在存儲過程完成後繼續看到舊對象。我已經試過每個這些對象的evict(),並使用HQL再次加載它們,但無濟於事。如何在存儲過程發生更改後刷新hibernate對象
什麼是解決這個問題的最佳方法。
在我的grails應用程序中,我們正在調用一個可能會更新數千條記錄的存儲過程。在存儲過程調用之後,我需要將這些記錄中的很多以json格式發送回UI。但是,hibernate在存儲過程完成後繼續看到舊對象。我已經試過每個這些對象的evict(),並使用HQL再次加載它們,但無濟於事。如何在存儲過程發生更改後刷新hibernate對象
什麼是解決這個問題的最佳方法。
我至少有幾百個,我裝入用一個HQL和不想iteracte和運行刷新()每個單獨的對象上的對象。應該有一些方法來清除休眠會話/緩存中的所有對象。 – Amit
@ user593644查看答案的更新。你可以使用'clear'清除會話。 – dmahapatro
refresh()和session.clear()不適用於我。我嘗試運行原生查詢來獲取數據,我認爲它比HQL查詢在直接從數據庫獲取數據方面表現更好。但是,即使這樣也超過了25%的時間。然後,在獲取數據之前,我添加了一個'session.flush();''session.clear();'和'Thread.sleep(2000);'。現在,它似乎工作得很好,雖然我對爲什麼如此愚蠢?我不希望groovy.sql.Sql.execute()是異步的。我感到困惑。 – Amit