簡體   English   中英

Java Web應用程序內存處理

[英]Java web application memory handling

我有一個Java Web應用程序,它使用Hibernate將數據存儲到數據庫中並檢索它們。

我當前使用的策略是在啟動時將所有內容從數據庫加載到應用程序,並在用戶與應用程序交互時將它們保存/更新到數據庫。

作為業務邏輯的一部分,我還要做的是跟蹤每個用戶的事務處理歷史記錄。 (因此,此事務歷史記錄將在應用程序啟動時全部加載)。

我看到的問題是,我不應該為所有用戶加載所有事務歷史記錄,因為如果事務歷史記錄很多,並且用戶不一定需要查看它們,那么可能會占用大量內存被用完,所以效率不高。

我想知道是否有類似於PHP腳本可以執行的操作,即僅當用戶請求查看事務歷史記錄時才查詢數據庫,因此它不使用服務器資源。 (除了查詢數據庫外)或者關於我現在所面臨的問題有什么建議/評論。

謝謝。

為什么不查詢每個請求進入並在響應后釋放的休眠狀態? 這是一種常見的方法。

在需要給定信息時查詢Hibernate,讓Hibernate管理將其放回數據庫。 這將允許Hibernate管理緩存。

注意,使用Hibernate時,應讓Hibernate完全管理數據。 不要自己使用原始SQL添加或更改數據。

如果使用的是現代容器,則應考慮遷移到JPA,因為它是Java EE容器中的標准,可以在需要擴展時變得更加靈活。 JPA非常接近Hibernate,但是它是一種API,而不是一種實現,因此您可以選擇多個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM