Persist RoleRightType przez stable getId() zamiast ordinal

Fixkamo-shared-library
Szycy
20 kwietnia 2026 20:59 UTC
Autor
Kamo
Pochęt się
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ę?

Każda z tych aktualizacji automatycznie ląduje w miejscu pracy. Zacznij za darmo i obserwuj, jak rośnie tydzień po tygodniu.

Start Free ForeverZobacz ceny