我知道有很多關於文檔的信息,但我對這個論點完全陌生,我想對此有一些簡單的建議。 我正在使用spring hibernate和jpa。我將在同一臺服務器上安裝兩個不同的應用程序。它們都與同一個數據庫進行通信,但只讀一個,另一個讀寫。 這是最好的方式來負擔得起嗎?看着aorund我明白應該有必要像EHCache這樣的二級緩存,但有一些愚蠢的東西,我不明白。例如,我應該在兩個應用程序中創建完全相同的實體嗎?如何將只讀應用程序將其實體與其他應用程序創建的實體相關聯?從兩個不同的應用程序訪問相同的數據庫(讀/寫和只讀)
1
A
回答
5
嗯,這裏是你的問題發表一些看法
從理論上說,你是不是在所有強制具有映射到數據庫表中的相同的Java類。您可以製作不同的標註並對它們進行標註,以便兩組都映射到相同的表格。這就是說,這不是一個好習慣。你應該做的是擁有一個數據訪問模塊,在這個模塊中你有一套JPA實體bean映射到表,以及允許你對這些(至少是CRUD)進行基本操作的類,然後有單獨的服務使用數據訪問模塊類實現特定業務邏輯的兩個項目中的每個類中的類
由於您有2個應用程序訪問同一個數據庫,因此您將處理兩個單獨的JPA上下文,這將分別刷新和同步。因此,如果您不確定每次需要時都手動刷新修改,則可能會出現一些數據不一致情況。如果你在其上面使用二級緩存(比如EHCache),這可能會成爲另一個問題。但是,在您當前的設置中,只有讀取和寫入的應用程序應該遵守這些限制,另一個(只讀的限制)可以並且確實建議使用二級緩存來加速其操作。只要確保所說的緩存被刷新/過期,以便在第一個應用寫入時就能得到所需的數據(例如,如果經常寫入,緩存也應該經常過期;如果你每個月都寫一次,可以在只讀應用程序的二級緩存上配置較長的到期時間)
0
我只會創建兩個用戶,其中一個用戶只有讀取權限(如果您的數據庫引擎支持)。
相關問題
- 1. 從兩個不同的Java應用程序讀取和寫入SQLite數據庫
- 2. 從2個應用程序訪問相同的SQLite數據庫
- 3. 訪問相同字典的不同線程(只讀)
- 4. 如何從單個Web應用程序訪問兩個不同的數據庫
- 5. 使用兩個不同的管道讀取和寫入相同的進程C++
- 6. 使用相同的ravenhq數據庫與兩個不同的應用程序
- 7. 使用fgets()從不同的管道讀取,從兩個讀取相同的消息(應該是不同的)
- 8. 兩個不同的Java應用程序共享相同的數據庫
- 9. 如何避免兩個不同的線程從數據庫讀取相同的行(Hibernate和Oracle 10g)
- 10. 問題閱讀,並從同一個程序中相同的文件寫入... C++
- 11. Heroku Postgres數據庫的只讀訪問
- 12. EF 4.1 - 從不同機器上的相同應用程序訪問數據庫的問題
- 13. 兩個應用程序可以訪問相同的Cookie嗎?
- 14. 在兩個應用程序中訪問相同的hibernate.cfg.xml
- 15. 如何讓JPA應用程序訪問不同的數據庫?
- 16. 寫作和閱讀相同的文件是不適用於android應用程序
- 17. 可以在兩個Python程序寫入和讀取的同時
- 18. 多線程訪問(讀/寫)同一表
- 19. 在同一個應用程序的兩個不同數據庫中使用相同的Django模型
- 20. 使用相同的數據庫和通知的兩個不同的Laravel應用程序
- 21. 關於同時處理對文件的只讀和只讀訪問的問題
- 22. 多線程訪問來自兩個不同數據庫連接的相同數據庫表
- 23. 從同一個文件夾讀取/寫入兩個ASP.net應用程序
- 24. 從多個線程同時訪問只讀數據是否明智?
- 25. Spring + Hibernate:讀/寫不同的數據源和數千個mysql數據庫
- 26. iTunes思考兩個不同的應用程序是相同的
- 27. 訪問 - 合併具有相同結構的兩個數據庫
- 28. iPhone - 兩個相同的應用程序
- 29. 訪問數據庫打開爲只讀
- 30. 只讀數據庫訪問事務?