GEDOPLAN

JPA-Metamodell-Generator von OpenJPA inaktiv

Alle

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.

Autor

Diesen Artikel teilen

LinkedIn
Xing

Gibt es noch Fragen?

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

Schulungen mit der selben Kategorie:

Blogkategorie: Alle
Es wurden keine Ergebnisse gefunden.

weitere Artikel

Kontakt

Brauchen Sie eine individuelle IT-Schulung, eine fundierte Beratung oder eine individuelle Softwareentwicklung? Dann sind Sie hier genau richtig!

Tim Neumann

Geschäftsleitung

GEDOPLAN GmbH
Stieghorster Straße 60
33605 Bielefeld

GEDOPLAN GmbH
Kantstraße 164
10623 Berlin

    Kontakt

    Tim Neumann

    Geschäftsleitung

    GEDOPLAN GmbH
    Stieghorster Straße 60
    33605 Bielefeld

    GEDOPLAN GmbH
    Kantstraße 164
    10623 Berlin

    Brauchen Sie eine individuelle IT-Schulung, eine fundierte Beratung oder eine individuelle Softwareentwicklung? Dann sind Sie hier genau richtig!