Persist RoleRightType by stabil getId() în loc de ordinal

Fixkamo-shared-library
Expediere
20 aprilie 2026 la 20:59 UTC
Autor
Kamo
Comite
ea4a85b

Hibernate @Enumerated (EnumType.ORDINAL) scrie/citește declarația-indexul Enum. Atunci când o valoare de tip RolRight este eliminată (de exemplu, MANAGE USERS, id=19), fiecare intrare ulterioară se schimbă ordinal în jos de unul în timp ce getId() rămâne pus crearea unei divergențe tăcute. În această bază de coduri SQL upsert brut *************** a scris mereu getId (), asa ca dupa MANAGE USERS a fost eliminat + noi drepturi adăugate DB deţine acum valorile de dreapta tip (ex. 136) care depășesc RolRightType. values () length, care cauzează hibernare ArrayIndexOutOfBoundsException on reading and crash startup. Introduceți RolRightTypeIdConverter - Nu. Integer>) că excursii rotunde prin getId(). Se aplică la toate cele cinci tabele din dreapta mapate ORDINAL: - OrgRoleRight - Dreapta Membru - JobTitlRight - Department Right - Drepturile Membrilor Aplicate Id-urile necunoscute se convertesc înapoi în nul aşa că ************* le poate curăţa pe următoarea cizmă mai degrabă decât crashing. Date privind coloana deja se potrivește getId() (asta este ceea ce introduceIfAbsent scrie), astfel încât nici o migrare este necesar .

Toate modificările

Ca ceea ce vezi de transport maritim?

Fiecare dintre aceste actualizări aterizează automat în spațiul de lucru. Începe gratuit și urmăriți-l crească săptămână după săptămână.

Pornește gratuit pentru totdeaunaVezi prețurile