EclipseLink --- Canonical Model Generation

Hi! :slight_smile:

Es geht um diesen hier: UserGuide/JPA/Using the Canonical Model Generator (ELUG) - Eclipsepedia

Ich verstehe leider nicht so 100%ig worum es hier geht. Brauche ich dieses MetaModel nur dafür, dass ich die CriteriaAPI verwenden kann?

Danke euch! :slight_smile:

Daniel

Kurzgesagt: ja
Eclipselink 1.2 ist aber veraltet, 2.6 ist aktuell

hast du denn schon Erfahrung mit ORM im allgemein oder JPA im speziellen?

Danke! Aktuell läuft das ganze mit Eclipselink 2.1. Erfahrung ist immer relativ, aber eigentlich: Ja

Das eigentliche Problem liegt hier: Mir ist mein Build mit dieser Exception um die Ohren geflogen

Consult the following stack trace for details.
java.lang.RuntimeException: com.sun.tools.javac.code.Symbol$CompletionFailure: class file for com.ibm.icu.text.Bidi not found
	at org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.process(CanonicalModelProcessor.java:407)```
Ich verwende ein paar Funktionen der Apache PdfBox, deren Abhängigkeiten nicht 100%ig aufgelöst sind. Ich brauche die Bidi nicht, weil das Programm ohne diese läuft.

Kann ich dem CanonicalModelProcessor irgendwie beibringen, dass er mir die PdfBox nicht zerlegt und die fehlende Abhängikeit nicht bemängelt?

Hmm… ok, das ist mal 'ne Frage :slight_smile:

Wie baust du das ganze denn?
Ant, Maven, oder…?

Muss ehrlich sagen dass ich die Criteria API und daher die Generierung der Metadaten nicht selber gemacht habe.

So wie es aussieht, musst du wohl zur Compilezeit die fehlenden Abhaengigkeiten hinzufuegen (icu4j.jar).
Gut moeglich, dass danach rauskommt das nochmehr fehlt…

Gebaut wird mit Ant@NetBeans

Du hast nichts verpasst, denn es ist ein vergleichbarerer Grusel, wie in .NET per Linq das EntityFramework zu quälen. Sicher kann man damit einige Sachen einfacher lösen, aber bei mir wurde es immer unnötig kompliziert und unübersichtlich. Ich habe mich bei dem Projekt wieder für Java entschieden, weil ich JPQL sehr brauchbar finde.

Die Sorge habe ich auch, deshalb ist das AnnotationProcessing erstmal abgeschaltet. :slight_smile: