GEDOPLAN
Jakarta EE (Java EE)

JPA-Metamodell-Generator von OpenJPA inaktiv

Jakarta EE (Java EE)

Der Java-Compiler erzeugt automatisch die JPA-Metamodellklassen zu den persistenten Klassen der Anwendung, wenn ein entsprechende Annotation Processor im Classpath ist. Kandidaten dafür sind bspw. org.hibernate:hibernate-jpamodelgen:1.2.0.Final oder org.apache.openjpa:openjpa:2.2.1.

Der zuletzt genannte Processor von OpenJPA generiert die Metamodellklassen nur dann, wenn beim Compileraufruf die Option -Aopenjpa.metamodel=true mitgegeben wird.

Damit ist ein Problem verbunden: Sollten mehrere Metamodell-Generatoren im Compiler-Classpath sein, verdeckt der erste die restlichen. Der Annotation Processor Discovery Process im Compiler matcht nämlich die zu verarbeitenden Annotationen (z. B. @Entity) mit den verfügbaren Annotation Processors in der Weise, dass jede Annotation nur von einem Processor verarbeitet wird, und zwar von dem, der in der Service-Liste (META-INF/services/javax.annotation.processing.Processor) vorne steht. Die Reihenfolge wiederum ergibt sich durch die Anordnung der Jars im Classpath.

Sollte man also bspw. die Metamodellklassen mit Hilfe des Hibernate-Generators erzeugen wollen, unbewusst aber das OpenJPA-Jar vorher im Classpath platzieren, wird der Hibernate-Generator verdeckt. Wird in einem solchen Fall die o. a. Option nicht genutzt, werden keine Metamodellklassen erzeugt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Autor

Diesen Artikel teilen

LinkedIn
Xing

Gibt es noch Fragen?

Fragen beantworten wir sehr gerne! Schreibe uns einfach per Kontaktformular.

Kurse

weitere Blogbeiträge

IT-Training - GEDOPLAN
Webprogrammierung

Angular, testen mit Karma/Jasmine

Anwendungen zu testen ist ein leidiges Thema und wird gerne aus Zeitgründen vernachlässigt. Jeder der schon mal ein größeres Refactoring…
IT-Training - GEDOPLAN
Jakarta EE (Java EE)

Jackson, mehr Annotationen

In früheren Artikeln haben wir bereits einige Features von Jackson gesehen die uns das Erzeugen und Verarbeiten von JSON-Strukturen einfacher…

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!