Ich habe es mit CRUD auf einer Klasse hierarhy: Employee->{Manager, Waiter, Chef}
mit Spring MVC. Ich verwende Single-Table-Vererbungsstrategie mit einem Feld DTYPE als Diskriminator. Wo ich stecke ist eine Situation, wenn ich Kellner aktualisieren muss -> Manager (nicht ein Fall ist ein Kellner wurde gefördert, sondern nur um einen Benutzer Eingabefehler zu beheben !!!) oder eine andere Kombination von Entitäten.Hibernate: Eintrag mit geändertem Typ
Hibernate in sich weigert, den Typ in DTYPE- Feld aufgezeichnet zu ändern, auch wenn ich explizit tun:
managerDAO.update(manager);
wo manager
ein Objekt von Manager
Klasse mit bereits bestehenden Id (belongning zu einem Kellner-Typ (DTYPE- = "Kellner")) im DB.
Jetzt ist die Frage: Wie korrigiere ich den Eingabefehler meines Benutzers, der scheinbar ziemlich einfache und vorherrschende Situation ist? Ich muss nur ehemaligen Kellner-Eintrag zu einem Manager-Eintrag mit der gleichen ID machen.
Ich frage mich, ob Hibernate einige Tricks hat, um mit einer Situation wie dieser umzugehen? Weil ich kein Rad neu erfinden ODER ein Workaround-Gefühl finden möchte, sollte dies vom Hibernate-Team vorhergesehen werden.
habe ich schon als
- SQL-Update auf DTYPE- Feld und
- löschen und setzen Sie einen neuen Eintrag des richtigen Typs ... aber das alles sieht aus wie eine falsche Verwendung von Hibernate.
Jede Hilfe wäre willkommen!