Ich habe diese Situation:Teilen Sie eine JPA-Datenquelle unter OSGi-Bundles
- eine SQL-Datenbank-Instanz
- zwei oder mehr OSGi-Bundles mit JPA-Entitäten und feder Datenrepositorien für "ihre" Entitäten
- einer der "jpa bundles" ist das "core bundle", die anderen hängen davon ab (plugin bundle)
Kann ich das mit einer einzigen Datenquelle verwenden?
Beispiel:
- "Kernbündel" enthält
Person
Einheit - "Person Liste Plugin Bundle" enthält eine
PersonList
Einheit, die Hinweise auf die Person Entität durch einepeople
Eigenschaft
ich jetzt möchte ein PersonListService
aus dem "Person list plugin bundle" verwenden, das PersonListRepository.findByPeoplesFirstName(String firstName)
Der Hintergrund ist, dass ich möchte, dass die Datenbank meiner Anwendung erweitert werden kann, indem ein osgi-Bundle als Plugin hinzugefügt wird.
Im Moment experimentiere ich mit Apache Karaf und Hibernate 5, wegen der räumlichen Unterstützung, wenn das wichtig ist.
Warum möchten Sie "Plugins" trotzdem verwenden? Wenn Sie beispielsweise eine Personenentität haben, sollten alle Repository-Klassen, die sich mit Person befassen, im selben Paket sein. Ich denke, es wäre nicht sinnvoll, Entitäten und ihre Repositories zu trennen. –
Ich möchte eine Legacy-Anwendung ersetzen, in der Benutzer einfach ein "Plugin" installieren können, indem sie einen Ordner mit PHP-Code hinzufügen. Es gibt jetzt ein "Cache-Builder-Plugin", das der Datenbank einige vorberechnete Tabellen hinzufügt. Dies benötigt Zugriff auf seine eigene Tabelle und auf die "Kern" -Tabelle. – dve