我有一個從共享mysql數據庫讀取的項目。有一個來自會話的大型賬戶對象(太大,但那是另一回事)。陳舊的Hibernate createSQLQuery
問題是此對象的blance字段在同一臺機器上被不同進程記入。所以用戶可以看到20英鎊的餘額,但實際上他們的餘額可能要低得多。應用程序無法知道此值何時更改。
所以我想我會做什麼是檢查MySQL每次我從數據庫中的值問,但它是通過面,所以它問了很多次,所以我把一個檢查,如果它沒有要求幾秒鐘,只在平衡點上做一個createSQLquery,看它是否不同,如果是,重新加載對象。
所以我做了什麼沿着線:
sess.createSQLQuery("SELECT Balance from Account").list();
和獲得的價值。有些時候它顯示了正確的平衡,但它通常會顯示以前讀取的平衡,其中mysql命令行客戶端顯示實際值。
有沒有辦法清除這個值,或者更新對象的其他方式?我想最終刪除休眠因爲它會導致我解決更多的問題,但目前,我只需要餘額顯示基於數據庫的值。
這就是它應該做的事情,我想是正確的。我在確定對象已更改時執行此操作,但它始終無法完成更改 – Woody