2011-09-29 219 views
1

我知道有很多關於文檔的信息,但我對這個論點完全陌生,我想對此有一些簡單的建議。 我正在使用spring hibernate和jpa。我將在同一臺服務器上安裝兩個不同的應用程序。它們都與同一個數據庫進行通信,但只讀一個,另一個讀寫。 這是最好的方式來負擔得起嗎?看着aorund我明白應該有必要像EHCache這樣的二級緩存,但有一些愚蠢的東西,我不明白。例如,我應該在兩個應用程序中創建完全相同的實體嗎?如何將只讀應用程序將其實體與其他應用程序創建的實體相關聯?從兩個不同的應用程序訪問相同的數據庫(讀/寫和只讀)

回答

5

嗯,這裏是你的問題發表一些看法

  1. 從理論上說,你是不是在所有強制具有映射到數據庫表中的相同的Java類。您可以製作不同的標註並對它們進行標註,以便兩組都映射到相同的表格。這就是說,這不是一個好習慣。你應該做的是擁有一個數據訪問模塊,在這個模塊中你有一套JPA實體bean映射到表,以及允許你對這些(至少是CRUD)進行基本操作的類,然後有單獨的服務使用數據訪問模塊類實現特定業務邏輯的兩個項目中的每個類中的類

  2. 由於您有2個應用程序訪問同一個數據庫,因此您將處理兩個單獨的JPA上下文,這將分別刷新和同步。因此,如果您不確定每次需要時都手動刷新修改,則可能會出現一些數據不一致情況。如果你在其上面使用二級緩存(比如EHCache),這可能會成爲另一個問題。但是,在您當前的設置中,只有讀取和寫入的應用程序應該遵守這些限制,另一個(只讀的限制)可以並且確實建議使用二級緩存來加速其操作。只要確保所說的緩存被刷新/過期,以便在第一個應用寫入時就能得到所需的數據(例如,如果經常寫入,緩存也應該經常過期;如果你每個月都寫一次,可以在只讀應用程序的二級緩存上配置較長的到期時間)

0

我只會創建兩個用戶,其中一個用戶只有讀取權限(如果您的數據庫引擎支持)。

相關問題