質問: ### 前提・実現したいこと Sprin BootでSpring Data JPA を用い、複合主キーのエンティティを作成したところ、 Springを起動する際に下記エラーが起き、Springが起動しません。 エラーメッセージを見る限り、 複合主キーを定義しているPKクラスがエンティティとして認識されていないというメッセージだと思うのですが、 PKクラスは複合主キーの定義のためのものなので、 これをSpringがエンティティと認識している理由が分かりません。 @EntityをPKクラスに定義しているわけでもありませんし、 persistence.xmlにPKクラスを定義しているわけでもありません。 ご教授頂ければ幸いです。宜しくお願い致します。 ### 発生している問題・エラーメッセージ ``` Not a managed type: class PK ``` ### 該当のソースコード ``` PKクラス @AllArgsConstructor @NoArgsConstructor @Data public class PK implements Serializable { private Long Id_1; private Long Id_2; } エンティティクラス @Data @Entity @Table(name="table_name") @IdClass(PK.class) public class EntityClass implements Serializable { /** ID1 */ @Id @Column(name="column_name") private Long id_1; /** 動画シリーズID. */ @Id @Column(name="column_name_2") private Long id_2; ``` ### 補足情報(FW/ツールのバージョンなど) Java1.8 Spring Boot 1.5.9
回答: エラーメッセージの ``` Not a managed type: class PK ``` はJPA管理クラスじゃないというエラーです。 複合主キークラス用アノテーション `Embeddable` を正しく付与しましょう