JPA - NamedQueries in sub-Class

MattyDE

Mitglied
Hallo Leute,

wir sind gerade an der Evaluierung verschiedener Technologien vor dem Start eines echt großen Webprojekts.

In Eclipse und Netbeans ist es ja möglich aus DB-Tables Entities generieren zu lassen (POJOs), und diese Methodik möchten wir auch gerne nutzen... Auch später noch, wenn sich an Tabellenstrukturen ab und an etwas ändert.

Leider wird dabei ja die POJO-Klasse immer wieder überschrieben, so dass wir uns darauf einigen würden diese Klassen überhaupt nie anzufassen und eben nur davon ableiten.

Da wir aber auch gerne "NamedQueries" nutzen würden, stehen wir jetzt vor folgendem Problem:

ControllerA ist von PojoA abgeleitet. In ControllerA würden wir jetzt gerne

Java:
@NamedQuery(
		  name="PojoA.findAll",
		  query="SELECT el FROM PojoA el"
		)

verwenden, nur leider funktioniert das nicht so wie es soll...

[console]
java.lang.IllegalArgumentException: NamedQuery of name: PojoA.findAll not found.[/console]

Gibt es dafür einen Workaround? Wenn wir die Queries in PojoA ausformulieren geht es, nur diese wird ja überschrieben bei einem "Generate Entities from DB-Tables"

Danke für Tipps und Hinweise :)
 
M

maki

Gast
In Eclipse und Netbeans ist es ja möglich aus DB-Tables Entities generieren zu lassen (POJOs), und diese Methodik möchten wir auch gerne nutzen... Auch später noch, wenn sich an Tabellenstrukturen ab und an etwas ändert.
Alternativ geht es auch anderesrum: Das DB Schema wird aus den Entities generiert, wird heute eigentlich immer so verwendet, ausser die DB Struktur steht schon, dann wird für den initialen import eben das Schema einmal als Entities exportiert.

Leider wird dabei ja die POJO-Klasse immer wieder überschrieben, so dass wir uns darauf einigen würden diese Klassen überhaupt nie anzufassen und eben nur davon ableiten.
Das Muster daz heisst "Generation Gap", wird öfters mit generiertem Code eingesetzt.

Würde an eurer Stelle das Schema aus den Entities generieren, ausser es gibt einen guten Grund es nicht zu tun.
 

MattyDE

Mitglied
Hallo Maki, danke für die schnelle Antwort.

Es gibt einen guten Grund: Das DB-Schema ist schon sogut wie fertig, bzw. entwickeln "wir" das DB-Schema immer zuerst mit dem Kunden zusammen und dann wird implementiert.

Noch eine Idee zu meinem Problem oder können wir jetzt NamedQuery gar nicht nutzen?... das wäre echt Schade.
 

Neue Themen


Oben