データベースに 2 つの 3 つのテーブルがあります。
グループ ---------- グループ ID PK 名前
ユーザーアカウント ---------- ユーザー ID PK
user_grouping ---------- groupId PK FK グループ化 (groupId -> groupId) userId PK FK user_account(userId -> userId)
私の UserAccount エンティティには、次の行があります。
@JoinTable(name = "user_group", joinColumns = {
@JoinColumn(name = "userId", referencedColumnName = "userId")}, inverseJoinColumns = {
@JoinColumn(name = "groupId", referencedColumnName = "groupId")})
@ManyToMany
private List<Grouping> groupingList;
これは、すべてのテーブル間の関係を示すためです。ただし、デプロイすると、次のエラーが発生します。
SEVERE: アプリの準備中の例外: Exception [EclipseLink-28018] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.EntityManagerSetupException 例外の説明: PersistenceUnit [com.dv_model_ejb_1.0-SNAPSHOTPU] の事前展開に失敗しました。 内部例外: 例外 [EclipseLink-7220] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.ValidationException 例外の説明: エンティティ クラス [クラス com.dv.model.entity.UserAccount] の注釈付き要素 [フィールド groupingList] の @JoinColumns が不完全です。ソース エンティティ クラスが複合主キーを使用する場合、@JoinColumns を使用して結合列ごとに @JoinColumn を指定する必要があります。このような @JoinColumn ごとに、name 要素と referencedColumnName 要素の両方を指定する必要があります。 ローカル例外スタック: 例外 [EclipseLink-28018] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.EntityManagerSetupException 例外の説明: PersistenceUnit [com.dv_model_ejb_1.0-SNAPSHOTPU] の事前展開に失敗しました。 内部例外: 例外 [EclipseLink-7220] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.ValidationException 例外の説明: エンティティ クラス [クラス com.dv.model.entity.UserAccount] の注釈付き要素 [フィールド groupingList] の @JoinColumns が不完全です。ソース エンティティ クラスが複合主キーを使用する場合、@JoinColumns を使用して結合列ごとに @JoinColumn を指定する必要があります。このような @JoinColumn ごとに、name 要素と referencedColumnName 要素の両方を指定する必要があります。 org.eclipse.persistence.exceptions.EntityManagerSetupException.predeployFailed (EntityManagerSetupException.java:221) で org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:1402)で ...
このエラー メッセージを正確に解釈する方法がわかりません。エンティティでテーブル リレーションシップが正しくモデル化されていないと想定しています。しかし、理由はわかりません。今日まで、これは正常にコンパイルされていました。誰でも支援を提供できますか?