ホームページ > データベース > mysql チュートリアル > Hibernate で MySQL データベースの列挙型を保持するにはどうすればよいですか?

Hibernate で MySQL データベースの列挙型を保持するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-30 19:40:03
オリジナル
846 人が閲覧しました

How to Preserve Enum Type in MySQL Database with Hibernate?

Hibernate の列挙型: MySQL データベースの列挙型の保持

データベースにマップすることを目的としたエンティティで列挙型フィールドを定義する場合、開発者はenum 列がデータベース内で enum として定義されている場合、Hibernate が整数データ型を予期すると問題が発生する可能性があります。この競合を解決するには、列を整数ではなく列挙型として扱うように Hibernate に明示的に通知する必要があります。

指定された例では、列挙型「com.mydomain.myapp.enums.Gender」が作成されています。 「人物」エンティティの「性別」属性を表します。ただし、この列挙型をデータベースに永続化しようとすると、次のエラーが発生します。「MyApp.Person の列 Gender の列の型が間違っています。見つかった値: enum、期待される値: integer。」

この問題に対処するには、Hibernate は次のことを行う必要があります。正しい列定義を明示的に指定する必要があります。これは、「gender」フィールドに「@Column」注釈と「@Enumerated」注釈の両方を付け、列定義を列挙型として、列挙型を文字列として指定することによって実現できます。以下にその例を示します。

<code class="java">@Column(columnDefinition = "enum('MALE','FEMALE')")
@Enumerated(EnumType.STRING)
private Gender gender;</code>
ログイン後にコピー

この列定義を明示的に指定することにより、Hibernate はデータ型を推測しようとしなくなります。このアプローチにより、列挙型が MySQL データベースに確実に保持され、マッピングが正しく機能できるようになります。

以上がHibernate で MySQL データベースの列挙型を保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート