Vraag DDD, JPA en Maven met meerdere modules


Ik probeer het multimodulaire Maven-project met Spring / JPA te configureren en uit te voeren. Dit is de algemene lay-out. Ik heb een rootmodule met 5 kindermodules.

backoffice (root maven module)
|
- (maven module) ----- core (dit is waar de dingen persistence.xml en entityManager zich bevinden).
|
- (module maven) ----- werknemer (werknemersgerelateerde entiteiten, controllers, etc.)
|
- (maven-module) ----- leverancier (leveranciersgerelateerde entiteiten, controllers, etc.)
|
- (module maven) ----- klant (klantgerelateerde entiteiten, controllers, etc.)
|
- (maven-module) ----- web (bevat alle webdingen).

Ik heb alle jpa-spullen in core / src / main / resources / META-INF (persistence.xml, lente-context met EntityManagerFactory, dataSource, etc.). Het idee is dat ik de persistentiematerialen over alle submodules (werknemer, leverancier en klant) wil delen.

Het probleem is dat wanneer de web-app wordt opgestart, deze de EntityMangerFactory niet kan vinden. Als ik de PPV-dingen instel in elke submodule (medewerker, verkoper en klant), dan werkt het.

Hoe stel ik al mijn persistentiegerelateerde zaken in in de kern en deel deze vervolgens met de andere modules?

Bij voorbaat bedankt.


12
2017-11-28 17:28


oorsprong


antwoorden:


Welnu, hier is de oplossing die ik heb gebruikt voor het geval iemand geïnteresseerd is.

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

Sommige respondenten vroegen waarom ik het project op deze manier in de eerste plaats wilde opzetten. Nou, de reden is modulariteit. Ik wil alles in kleine testbare en inzetbare eenheden. Uiteindelijk zullen we OSGI in de mix weven zodat de klant kan kiezen welke modules ze willen installeren. Elke module moet de mogelijkheid hebben om zelfstandig te werken.


3
2017-12-01 17:30



Als de werknemer, leverancier en klantentiteiten en controllers zo logisch van elkaar gescheiden zijn dat ze deze in afzonderlijke modules nodig hebben, dan zou ik zeggen dat ze duidelijk hun eigen entityManager zouden moeten hebben.

Als u een enkele webapp en één entiteitbeheerder wilt hebben, waarom wilt u dan aparte modules hebben voor elk brok entiteiten? Steek gewoon medewerkers, leveranciers en klanten in de kern, met de entiteitmanager, en wees klaar.

Of geef elk een eigen entitymanager (en waarschijnlijk elk een eigen webapp)


-2
2017-11-30 11:53