質問

私は現在、共同でデータとの多くの関係を実装しようとしています。私はフォローしています このアプローチ Eclipselink JPAフレームワークを使用して。しかし、私は次の例外を取得しています:

org.eclipse.persistence.exceptions.entitymanagersetupexception.predeployfailed(entitymanagersetupexception.java:210)... persistence.exceptions.ValidationException例外:組み込みIDクラス[クラスde.kapieren.mbm.server.model.usergrouppk]からのマッピング[グループ]は、このクラスの無効なマッピングです。ソース[クラスde.kapieren.mbm.server.model.groupmembership]の埋め込みID仕様(属性[pk])で使用される埋め込み可能なクラスは、基本マッピングのみを含むことができます。非基本マッピングを削除するか、埋め込まれたソースに埋め込まれたID仕様を変更します

EmbedDedidとの関係における基本的なマッピングの意味を知っている人はいますか?ここで何が間違っているのでしょうか?

役に立ちましたか?

解決

Eclipselinkは、非の使用について不平を言っています Basic マッピング(たとえばa ManyToOne)で Embeddable プライマリキーとして使用されるクラス(つまり、 EmbeddedId).

JPA 2.0仕様によると、これは実際にはサポートされていません。

11.1.15 EmbedDedid Annotation

EmbeddedId 注釈は、エンティティクラスまたはマッピングされたスーパークラスの永続的なフィールドまたはプロパティに適用され、組み込み可能なクラスである複合プライマリキーを示します。埋め込み可能なクラスは、Asとして注釈を付けなければなりません Embeddable. 組み込みIDクラス内で定義された関係マッピングはサポートされていません.

私が言い換えると、 EmbeddedId's Embeddable クラスは、使用するエンティティの各ID属性を定義する必要があります Basic 標準JPAのマッピング。

参照

  • JPA 2.0仕様
    • セクション11.1.15「EmbedDedid Annotation」
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top