ホームページ > データベース > mysql チュートリアル > JPA for MySQL の自動インクリメントフィールドに適切に注釈を付けるにはどうすればよいですか?

JPA for MySQL の自動インクリメントフィールドに適切に注釈を付けるにはどうすればよいですか?

DDD
リリース: 2024-12-24 07:31:23
オリジナル
820 人が閲覧しました

How to Properly Annotate Auto-Increment Fields in JPA for MySQL?

MySQL の JPA アノテーションを使用した自動インクリメント フィールドについて

このシナリオでは、JPA アノテーションを使用して Operator オブジェクトを MySQL データベースに保存すると、次のエラーが発生します。問題です。この問題の根本原因は、自動インクリメント フィールドの設定内にあります。

MySQL AUTO_INCREMENT カラムを利用するには、IDENTITY 戦略を採用することが不可欠です。これは、次のアノテーションを使用して実現できます:

@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
ログイン後にコピー

このアノテーションにより、Hibernate がデータベースの自動インクリメント機能に基づいて適切な戦略を生成することが保証されます。

ただし、Hibernate はそうではないようです。 SQL 挿入ステートメントで id 列を出力します。これを解決するには、MySQL5InnoDBDialect や MySQL5Dialect などの MySQL ダイアレクトが Hibernate 構成で定義されていることを確認します。

さらに、テーブル DDL が正しいことを確認することが重要です。演算子テーブルは次の構造のようになります。

CREATE TABLE `operator` (
  `id` INT(10) NOT NULL AUTO_INCREMENT,
  `username` VARCHAR(50) NOT NULL,
  `password` VARCHAR(50) NOT NULL,
  `active` INT(1) NOT NULL,
  PRIMARY KEY (`id`)
);
ログイン後にコピー

これらのガイドラインに従うことで、自動インクリメント フィールドの注釈付けに関する問題は解決されるはずです。ただし、問題が解決しない場合は、ビルド ディレクトリを調べるか、異常な出来事がないかログを再検査するか、潜在的な不整合を特定するためにコードを再検査することを検討してください。

以上がJPA for MySQL の自動インクリメントフィールドに適切に注釈を付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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