今回は、個人プロジェクトをやっている時、JPAルール関連エラーが発生したのでそれにについてみていきたいと思います。
エラー内容
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘jpaMappingContext’: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: jp.co.aoterp.domain.skill.Skill
- Skillクラスに識別子がないという意味みたいですね。
解決
意外と簡単でしたが、識別できるIDアノテーションを定義するだけで解決できました。
+JPA Entityルール
JPA Entity作成するには以下のルールを守らなければならないようです。
- 全てのEntityクラスには@Idの指定が必要です。
- このアノテーションが付与されているカラムはNull不可
- 基本キーが複合キーの場合は、@Embeddedldまたは@IdClassアノテーションを使います。
- テーブルにPK(Primary Key)がない場合は、Uniqueなカラムに@Idアノテーションを付与して使います。
終わり
上記で書いてあるルール以外にもいっぱいありそうですが、今回はバグ対応メモとして残しました。
バグが出てきたら都度都度メモしていきたいと思います。
