- 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.