Persist RoleRightType oleh stabil getId () daripada ordinal

Fixkamo-shared-library
Dikirim
20 April 2026 pukul 20.59 UTC
Penulis
Kamo
Commit
ea4a85b

Hibernate @ Enumerated (EnumType.ORDINAL) menulis / membaca deklarasi-indeks dari enum. Ketika sebuah nilai RoleRightType dihapus (mis. Manusia _ Users, id = 19), setiap entri berikutnya yang ordinal pergeseran turun oleh satu sementara getId () tetap menempatkan - menciptakan divergensi diam. Dalam codebase ini penggerutu -SQL * * * * * * * * * * * * * * telah selalu ditulis getId (), jadi setelah Manvage _ Users telah dihapus + new rights menambahkan DB sekarang memegang nilai kanan _ type (mis. 136) yang melebihi RoleRightType.values () .length, menyebabkan Hibernasi ke Melempar ArrayIndexOfSoundException pada bacaan dan kecelakaan startup. Memperkenalkan RoleRightTypeIdConverter * * * * * * * * * * * * * * * Integer >) perjalanan melalui getId. Terapkan ke lima ORDINAL-mapped tabel kanan: - RoleRight Organ - Anggota Kanan - JobTitleRight - Bagian Kanan - Anggota RightsApplied ID tidak diketahui konversi kembali ke null begitu * * * * * * * * * * * * * * * * * dapat membersihkan mereka di boot berikutnya daripada menabrak. Data kolom sudah cocok dengan getId () (itulah yang menyisipkan IfAbsent menulis), jadi tidak ada migrasi dibutuhkan - konverter menyelaraskan Hibernasi dengan apa yang sebenarnya disimpan.

Semua perubahan

Seperti apa yang Anda lihat pengiriman?

Semua pembaruan ini secara otomatis mendarat di ruang kerja Anda. Mulai bebas dan menontonnya tumbuh minggu demi minggu.

Mulai Bebas SelamanyaTampilkan Harga