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