Maison > base de données > tutoriel mysql > Comment conserver les énumérations sous forme de chaînes en veille prolongée avec @Column(columnDefinition) et @Enumerated(EnumType.STRING) ?

Comment conserver les énumérations sous forme de chaînes en veille prolongée avec @Column(columnDefinition) et @Enumerated(EnumType.STRING) ?

Susan Sarandon
Libérer: 2024-10-30 04:47:02
original
295 Les gens l'ont consulté

How to Persist Enums as Strings in Hibernate with @Column(columnDefinition) and @Enumerated(EnumType.STRING)?

Persistance de l'énumération Hibernate en tant qu'énumération

Lors de la définition d'une énumération dans une entité Hibernate, il est important de s'assurer que le mécanisme de persistance s'aligne sur le type de données de la colonne de base de données. Dans votre cas, la colonne de base de données « genre » est définie comme un type enum avec les valeurs « masculin » et « female ».

Le problème que vous rencontrez peut être dû à une inadéquation entre les types de données attendus par Hibernate et le type de données réel de la colonne de base de données. Par défaut, Hibernate s'attend à ce que les valeurs d'énumération soient conservées sous forme d'entiers, mais la colonne de votre base de données est définie comme une énumération.

Pour résoudre cet écart, vous pouvez demander explicitement à Hibernate de conserver l'énumération en tant que valeur de chaîne en utilisant la commande @Column(columnDefinition) annotation. Cette annotation définit le DDL (Data Definition Language) utilisé pour créer la colonne. Dans votre cas, vous pouvez spécifier la définition de la colonne comme :

@Column(columnDefinition = "enum('male','female')")
Copier après la connexion

De plus, vous devez annoter le champ d'énumération avec @Enumerated(EnumType.STRING) pour indiquer que l'énumération doit être conservée en tant que valeur de chaîne.

Cet extrait de code mis à jour devrait résoudre le problème :

@Column(columnDefinition = "enum('male','female')")
@Enumerated(EnumType.STRING)
private Gender gender;
Copier après la connexion

En spécifiant explicitement la définition de la colonne et le type d'énumération, vous forcez Hibernate à conserver l'énumération sous forme de chaîne, correspondant au type de données. de la colonne de votre base de données. Cela évitera l'erreur que vous avez rencontrée et garantira la persistance correcte des données d'énumération.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal