Persister RoleRightType par stable getId() au lieu d'ordinal

Fixkamo-shared-library
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é.

All changes

Comme ce que tu vois expédier ?

Chacune de ces mises à jour atterrit automatiquement dans votre espace de travail. Commencez gratuitement et regardez-le grandir semaine après semaine.

Commencez gratuitement pour toujoursPrix de visualisation