Подтвердить что ты не робот

DDD, JPA и Multi-Module Maven

Я пытаюсь настроить и многомодульный проект Maven с помощью Spring/JPA. Вот общий макет. У меня есть корневой модуль с 5 дочерними модулями.

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).

У меня есть весь материал jpa в core/src/main/resources/META-INF (persistence.xml, spring -context w/EntityManagerFactory, dataSource и т.д.). Идея состоит в том, что я хочу разделить материал персистенции по всем подмодулям (сотруднику, поставщику и клиенту).

Проблема заключается в том, что при запуске веб-приложения он не может найти EntityMangerFactory. Если я настрою материал JPA в каждом субмодуле (сотруднике, поставщике и клиенте), он будет работать.

Как мне настроить все мои вещи, связанные с сохранением в ядре, а затем поделиться им с другими модулями?

Спасибо заранее.

4b9b3361

Ответ 1

Ну, вот решение, которое я в конечном итоге использовал, если кто-то заинтересован.

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

Некоторые из респондентов задали вопрос, почему я должен сначала настроить проект таким образом. Ну, причина в модульности. Я хочу все в маленьких тестируемых и развертываемых устройствах. В конечном итоге мы будем вставлять OSGI в микс, чтобы клиент мог выбирать, какие модули они хотят установить. Каждый модуль должен иметь возможность запускаться самостоятельно.

Ответ 2

Если сотрудники, продавцы и клиенты и контроллеры настолько логически разделены, что нуждаются в них в отдельных модулях, то я бы сказал, что они должны иметь свой собственный entityManager.

Если вы хотите иметь один webapp и один entitymanager, то почему вы хотите иметь отдельные модули для каждой части сущностей? Просто придерживайтесь сотрудников, поставщиков и клиентов в основном, с менеджером сущностей и выполняйте.

Или, дайте каждому свой собственный entitymanager (и, возможно, каждый из них - собственный webapp)