KamoCRM

Persist RoleRightType przez stable getId() zamiast ordinal

Fixkamo-shared-library
Przesyłane
20 kwietnia 2026 20:59 UTC
Autor
Kamo
Zgłoszenie
ea4a85b

Hibernate -Enumerated(EnumType.ORDINAL) pisze/czytanie deklarowanego indeksu deklaracji Enum. Po usunięciu wartości RoleRightType (np. MANAGE_USERS, id-19), Każdy kolejny wpis przesuwa się w dół przez jeden, podczas gdy getId() pozostaje na umieszczeniu - Tworzenie cichej dywergencji. W tej bazie kodu surowa-SQLert Zawsze pisał getId(), więc po MANAGE_USERS został usunięty + nowe prawa dodane DB teraz zawiera wartości typu right_ (np. 136), które przekraczają wartości(). RoleRightType(). długości, powodujący Hibernację Rzuć ArrayIndexOutOfBoundsException na temat startu i awaria. Wprowadzenie RoleRightTypeIDConverter - Integer>) W obie strony przez getId(). Zastosuj do wszystkich pięciu odpowiednich stołów ORDINAL: - OrgRoleRight - MemberRight - JobTitleRight (zachowa) - Departament Prawa - MemberRightsApplied Nieznane id wrócili do null, więc Może je wyczyścić na następnym butze, a nie rozbić. Dane kolumnowe Już pasuje do getId() (to jest to, co wstawkaIfAbsent pisze), więc bez migracji Jest potrzebny - konwerter dostosowuje Hibernate do tego, co jest faktycznie przechowywane.

Wszystkie zmiany

Jak to, co widzisz żeglugę?

Wszystko to pojawia się w twoim miejscu pracy na własną rękę. Zacznij od bezpłatnego planu i przeczytaj tę stronę ponownie w miesiącu.

Zacząć na zawszeZobacz ceny