2010-11-28 89 views
12

我正在嘗試使用Spring/JPA配置和Maven多模塊項目。這是總體佈局。我有一個包含5個子模塊的根模塊。DDD,JPA和多模塊Maven

 
backoffice (root maven module) 
| 
-(maven module)-----core (this is where persistence.xml and entityManager stuff resides). 
| 
-(maven module)-----employee (employee related entities, controllers, etc.) 
| 
-(maven module)-----vendor (vendor related entities, controllers, etc.) 
| 
-(maven module)-----customer (customer related entities, controllers, etc.) 
| 
-(maven module)-----web (contains all the web stuff). 

我在覈心/ src目錄/主/資源/ META-INF所有的JPA的東西(persistence.xml中,彈簧語境W/EntityManagerFactory的,數據源等)。這個想法是我想分享所有子模塊(員工,供應商和客戶)的持久性材料。

問題是,當Web應用程序啓動時,它無法找到EntityMangerFactory。如果我在每個子模塊(員工,供應商和客戶)中設置JPA東西,那麼它就可以工作。

如何在覈心中設置所有與持久性相關的東西,然後在其他模塊中共享它?

在此先感謝。

+1

您是否向員工,供應商和客戶模塊添加了對核心的依賴關係?老實說不知道我會讓他們作爲單獨的模塊,甚至 – willcodejavaforfood 2010-11-28 18:14:25

+0

好吧,我忘了添加上下文文件從核心到我的web.xml。現在我已經完成了web應用程序的啓動,但它無法在其他模塊中找到實體。 – user523078 2010-11-28 19:02:04

回答

3

好了,這裏是我結束了使用的情況下任何人有興趣的解決方案。

http://labs.bsb.com/2010/11/configuring-modular-jpa-applications-with-spring/

一些響應者問我爲什麼要設置這個項目這樣擺在首位。那麼原因是模塊化。我希望所有的小型可測試和部署單位。最終,我們會將OSGI編織到組合中,以便客戶可以選擇他們想要安裝的模塊。每個模塊必須能夠獨立運行。

-3

如果員工,供應商和客戶實體和控制器在邏輯上是分開的,以至於需要將它們放在不同的模塊中,那麼我會說他們應該有自己的entityManager。

如果你想擁有一個單獨的webapp和一個單一的entitymanager,那麼爲什麼你想爲每個實體塊都有單獨的模塊?只需將核心員工,供應商和客戶與實體經理緊密聯繫並完成即可。

或者,給每一個自己的EntityManager,(也許每個人自己的web應用程序)