Maison > Article > base de données > Comment conserver le type Enum en veille prolongée lorsque vous travaillez avec la colonne « enum » de MySQL ?
Considérez la configuration suivante : une table MySQL avec une colonne définie comme "énumération de genre ( 'male', 'female')", une énumération Java correspondante "Gender" et une entité Person avec "Gender Gender". Lors de la tentative de démarrage de l'application, une erreur est rencontrée : "Type de colonne incorrect dans MyApp.Person pour la colonne Sexe. Trouvé : énumération, attendu : entier."
Par défaut , Hibernate s'attend à ce que les champs énumérés soient stockés sous forme d'entiers. Pour spécifier que le type enum doit être conservé dans la base de données, utilisez les annotations suivantes :
<code class="java">@Column(columnDefinition = "enum('MALE','FEMALE')") @Enumerated(EnumType.STRING) private Gender gender;</code>
Alternativement, si vous préférez déléguer la génération de schéma à Liquibase ou à un script SQL, vous pouvez fournir une valeur factice pour the columnDefinition :
<code class="java">@Column(columnDefinition = "enum('DUMMY')") @Enumerated(EnumType.STRING) private ManyValuedEnum manyValuedEnum;</code>
Cela garantit qu'Hibernate s'appuiera sur l'énumération Java et les outils de synchronisation de schéma de base de données pour maintenir les valeurs d'énumération correctes.
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!