- 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.