Hallo.
Also ich stehe vor folgendem Problem:
Ich habe eine Generalisierungsbeziehung, sagen wir,
GeneralEntity sowie SpecialEntity, welches eine Subklasse von GeneralEntity ist. Der Primary Key ist ein auto-generierter Wert, die SpecialEntity-Tabelle ist per Foreign Key mit dem Primary Key von GeneralEntity verknüpft.
Angenommen, es existiert bereits eine GeneralEntity mit ID 2.
Ich möchte nun die bestehende GeneralEntity zu einer SpecialEntity erweitern - ist das irgendwie möglich?
Ich habe ein wenig herumprobiert, letztlich läuft es auf ein Löschen (
Code:
Session.delete(entity)
), Kopieren der Attribute in eine neue Instanz von SpecialEntity sowie Neuanlegen (
Code:
Session.save(newEntity)
) hinaus, wobei sich natürlich die ID ändert.
Ansonsten kommt es zu diversen, logischen Exceptions.
Die andere Möglichkeit ist per
Code:
Session.createSQLQuery("insert into SpecialEntity (id, attr1, ...) values (2, 'val', ...);").executeUpdate();
, aber SQL-Code möchte ich vermeiden.
Gibt es dafür keine "elegantere" Möglichkeit?
Vielen Dank im Voraus.