Maison >base de données >tutoriel mysql >Comment conserver les types Enum en veille prolongée ?

Comment conserver les types Enum en veille prolongée ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-30 19:59:30844parcourir

How to Persist Enum Types in Hibernate?

Types d'énumération persistants dans Hibernate

Lorsque vous travaillez avec Hibernate, mapper les types d'énumération aux colonnes de la base de données peut parfois poser un défi. Par défaut, Hibernate s'attend à ce que les valeurs d'énumération soient stockées sous forme d'entiers. Cependant, vous préférerez peut-être conserver le type enum dans la base de données pour plus de clarté ou de cohérence.

Pour y parvenir, vous pouvez exploiter l'annotation @Column avec l'attribut columnDefinition :

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

By en spécifiant columnDefinition, vous définissez explicitement le type de données de la colonne dans la base de données, en vous assurant que le type enum est préservé.

Si vous ne dépendez pas d'Hibernate pour la génération de schéma, vous pouvez simplifier davantage le processus en en utilisant une valeur arbitraire pour la colonneDéfinition :

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

Cette approche vous permet de synchroniser votre énumération Java et votre schéma de base de données sans vous fier à des valeurs codées en dur.

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!

Déclaration:
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