2013-04-12 18 views
2

假設有多個JavaEE 6應用程序在數據庫中使用相同實體 - 共享其中的JPA Enitity類的最佳方式是什麼?在應用程序中共享JPA實體

它們是否應該作爲每個WAR中的類包含在內,或者應該在每個WAR中包含實體的JAR還是應該將這些實體分開部署?

而解決方案將依賴於服務器?目前我們使用JBoss 7.

回答

0

我打算建議我在這種情況下爲我實施解決方案: 在我的公司,我們有一個用於開發ERP的所有數據庫。我們使用公共數據庫實施的每個ERP模塊都做了什麼? 很好地實現了封裝所有數據訪問的EJB MODULE,它包含實體和實體管理器,並通過它完成所有數據訪問。 此EJB模塊作爲每個ERP項目中的庫添加。 通過這種方式,ERP模塊本身無法訪問數據庫,整個系統層次更加清晰,每個ERP項目都着重實施自己的業務規則。 我們在交易環境中使用容器管理的實體。 JEE6。

+0

感謝您的想法。從架構的角度來看,我認爲「封裝所有數據訪問」並不是必需的,因爲在JavaEE 6中,JPA實體同時是業務對象,所以通常不需要在業務邏輯和持久性之間明確地制定一個層。從部署的角度來看,我認爲這是一個有效的方法來製作一個單獨的模塊,因爲我也在我的問題中列出 - 但是,我想在這裏討論它的優點和缺點。 –

+0

如果實體在應用程序的不同層中使用,那麼數據庫中的級聯變化會使系統維護變得非常困難。如果應用程序對於CRUD類型有效可節省開發時間,但由於各層之間的強耦合,系統上不推薦使用更加嚴重的系統。 我們在業務實體和邏輯之間實現了一箇中間層,所以創傷性避免了數據庫中的變化。應該清楚我們在哪裏管理我們處理數據和信息的位置以及它們之間的區別。 – meyquel

相關問題