Persist RoleRightType durch stable getId() anstelle von ordinal

Fixkamo-shared-library
Verschifft
20. April 2026 um 20:59 UTC
Autor
Kamo
Ausschuss
ea4a85b

Hibernate @Enumerated(EnumType.ORDINAL) schreibt/lest den Deklarationsindex von das enum. Wenn ein RoleRightType-Wert entfernt wird (z. MANAGE_USERS, id=19), die nächsten Eintrags-Ordinal-Shifts nach unten durch ein, während getId() bleibt setzen Schaffung einer stillen Divergenz. In dieser Codebasis der Roh-SQL-Upsert ************ hat immer getId( geschrieben), also nach MANAGE_USERS wurde entfernt + neue Rechte hinzugefügt, die DB enthält jetzt right_type Werte (z.B. 136) die RoleRightType.values() überschreiten, wodurch Hibernate zu ArrayIndexOutOfBoundsException auf Lese- und Absturz-Start starten. RoleRightTypeIdConverter ************ Integer' einführen dass Hin- und Rückfahrten über getId(). Bewerben Sie sich auf alle fünf ORDINAL-gebildeten rechten Tabellen: - OrgRoleRight - MemberR - JobTitleRight - DepartmentRight - Rechtmäßige Rechtordnung Unbekannte ids konvertieren zurück zu null so **************** kann sie auf dem nächsten Boot aufräumen, anstatt abzustürzen. Die Spaltendaten bereits passt getId() (das ist, was insertIfAbsent schreibt), also keine Migration wird benötigt - der Konverter richtet Hibernate mit dem aus, was tatsächlich gespeichert ist.

Alle Änderungen

Wie, was Sie sehen Versand?

Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.

Free Forever startenPreisgestaltung anzeigen