JPA Extended Entity persistent machen

Diskutiere Extended Entity persistent machen im Application Tier Bereich.
F

Flashbaer

Hallo,

ich habe eine Klasse X, die eine Entity E extended. Nun möchte ich das Object der Klasse X persistent machen.
Der Persistence Manager meckert jetzt aber: X is not a known entity type.

Casten bringt in diesem Fall ja nichts.

Kann ich das Objekt der Klasse X irgendwie in ein Objekt der Klasse E umwandeln oder dem Entity Manager sagen er soll die Klasse E hernehmen?

Viele Grüße
Flashbaer
 
S

Sym

JPA selbst sagt, dass eine Klasse mit @Entity annotiert sein muss, damit diese persistiert werden kann.

Ich könnte mir jedoch vorstellen, dass casten funktioniert. Hast Du das explizit versucht?

Ansonsten die erbende Klasse Annotieren. Dort die entsprechende Tabelle von E angeben und die zusätzlichen Felder als transient markieren.

Mir ist jedoch nicht klar, warum Du das so machen möchtest. So ohne weitere Informationen liest sich das nicht sehr sauber.
 
F

Fant

Wieso klappt casten nicht? Du sagst das so selbstverständlich ... und ich kann hier gerade leider nicht testen ^.^

Oder willst du die zusätzlichen Informationen von X ebenfalls persistieren? Dann kannst du z.B. mal hier nach Möglichkeiten schauen: Java Persistence/Inheritance - Wikibooks, open books for an open world

Sonst kann man natürlich noch eine neue E-Instanz mit den passenden Werten erstellen und diese dann persistieren...
 
F

Flashbaer

@Fant
wenn ich Caste bringt das insofern nichts, da der Entity Manager selbst nach der Klasse des übergebenen Objekts sucht.

Wenn ich dem EntityManager (E)X übergebe, dann meckert er trotzdem, dass X nicht persistent gemacht werden kann, da sich die Klasse ja nicht ändert.

Gibt es denn keinen Weg außer X in die Persistenz mit aufzunehmen? Ich würde das gerne verhindern, da hier Daten nur temporär gespeichert werden die ich nicht in der Datenbank haben möchte...
 
S

Sym

Du könntest das Objekt einfach in eine eine Instanz der Entität mappen.
 
F

Flashbaer

Ich stehe wohl gerade auf dem Schlauch...
Wie genau soll das gehen?

---

Edit:
Ok Schlauch ist geplatzt :)
Ich werde es dann wohl so machen wie du sagst, danke vielmals!
 
Zuletzt bearbeitet:
S

Sym

Entweder per Hand einfach ein new E() und dann alle Felder kopieren oder etwas wie Dozer verwenden.
 
Thema: 

Extended Entity persistent machen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben