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, Lifecycle Methoden

Mittels Lifecycle Methoden bietet Angular uns die Möglichkeit an bestimmten Stellen des Lebenszyklus einer Komponente ein zu greifen um z.B.…

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!