- Shipped
- 20 avril 2026 à 20:59 UTC
- Author
- Kamo
- Commit
- ea4a85b
Hibernate 'Enzoated(EnumType.ORDINAL) écrit/lit l'indice de déclaration de l'enum. Lorsqu'une valeur de type RoleRightType est supprimée (par ex. MANAGE-USERS, id-19, les changements ordinaux de chaque entrée ultérieure sont réduits d'un moment, tandis que getId() reste mis créer une divergence silencieuse. Dans cette base de code, le upsert raw-SQL a toujours écrit getId(), donc après MANAGE-USERS a été supprimé - de nouveaux droits ajoutés, le code de la part du code de la part des valeurs de type droit (par ex. 136) qui dépassent la longueur de l'alinéa Hibernate à RoleRightType. lancer ArrayIndexOutOfBoundsException en lecture et crash startup. Introduire RoleRightTypeIdConverter et Integer) qui se déplace via getId(). Appliquer aux cinq tableaux appropriés d'ORDINAL: OrgRoleRight - Membre Droit - JobTitleRight - Département Droit - MembresDroitsAppliqué Les ids inconnus se convertissent à nouveau en nuls, peuvent les nettoyer sur la chaussure suivante plutôt que de s'écraser. Les données de la colonne déjà correspond getId() (c'est ce que insérer IfAbsent écrit), donc pas de migration est nécessaire - le convertisseur aligne Hibernate avec ce qui est effectivement stocké.