Maison > base de données > tutoriel mysql > le corps du texte

Comment garantir qu'Hibernate préserve les valeurs d'énumération lors du mappage à une colonne d'énumération MySQL ?

Patricia Arquette
Libérer: 2024-11-02 07:58:29
original
509 Les gens l'ont consulté

How to Ensure Hibernate Preserves Enum Values When Mapping to a MySQL Enum Column?

Préserver les valeurs d'énumération dans Hibernate : dépannage d'un type de colonne incorrect

Dans le domaine de la persistance des données, assurer la compatibilité entre les modèles de données et les schémas de base de données , et leurs mappages respectifs sont essentiels. Lorsque vous travaillez avec des types énumérés en Java, il est crucial d'établir comment Hibernate mappe ces énumérations à la base de données sous-jacente.

Dans votre cas, vous avez défini une colonne MySQL comme énumération et créé une énumération correspondante dans votre Java. code. Cependant, vous rencontrez l'erreur suivante : « Type de colonne incorrect dans MyApp.Person pour la colonne Sexe. Trouvé : énumération, attendu : entier. Cette erreur se produit lorsque Hibernate s'attend à ce que la colonne Sexe soit un nombre entier car l'énumération est traitée comme un ordinal ou une chaîne, selon la spécification de l'annotation @Enumerated.

Pour résoudre ce problème, vous pouvez spécifier explicitement le définition de colonne à l'aide de l'attribut columnDefinition :

<code class="java">@Column(columnDefinition = "enum('MALE','FEMALE')")
@Enumerated(EnumType.STRING)
private Gender gender;</code>
Copier après la connexion

En fournissant une définition de colonne, vous demandez à Hibernate de ne pas deviner le type de colonne mais de respectez la définition spécifiée.

Alternativement, si vous n'utilisez pas Hibernate pour générer votre schéma, vous pouvez supprimer le besoin de valeurs de définition de colonne en les définissant sur des valeurs arbitraires :

<code class="java">@Column(columnDefinition = "enum('DUMMY')")
@Enumerated(EnumType.STRING)
private ManyValuedEnum manyValuedEnum;</code>
Copier après la connexion

De cette façon, vous pouvez vous assurer que les valeurs d'énumération sont conservées dans votre énumération Java tout en synchronisant vos scripts Liquibase ou SQL en conséquence.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!