1. ホーム

hibernate save times error フィールド 'id' doesn't have a default value

2022-03-18 11:35:50
<パス

問題の原因



ネットで検索した結果、私のエンティティの主キーに設定されているのが原因です。



GeneratedValue(strategy = GenerationType.IDENTITY)は自己インクリメント型ですが、私のデータベースの主キーはそうではないので、このエラーが発生するのです。



jpaがテーブルを生成する際に、エンティティクラスの主キーをそのままデフォルトでセルフインクリメントにするのは合理的ですが、なぜデフォルトでセルフインクリメントにならないかというと、私の最初の主キー設定がIDENTITYではなくAUTOだから問題が発生するのだと思います。



解決方法



1. テーブルにデータがない場合、テーブルを削除して再度プログラムを実行する



2、テーブルを再設計し、上の増加以来、主キー



注意事項



IDENTITY このメソッドは mysql でのみ使用可能で、oracle では使用できません。