KamoCRM

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

Fixkamo-shared-library
Shipped
20 aprilie 2026 la 20:59 UTC
Author
Kamo
Commit
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 .

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing