1

こんにちは、みんな、

私はJPAが初めてです。以下のシナリオで問題に直面しています。

以下に示すように、埋め込み可能なクラス ContactInformation があります。

@Embeddable public class ContactInformation {
    @OneToMany
    private Set<Phone> phoneList;
    @Embedded
    private Address address;
......
}

以下に示すように、別のエンティティ クラス Employee があります。

   @Entity

   @IdClass(EmployeeId.class)

   public class Employee implements Serializable {


    private static final long serialVersionUID = 1L;

   @Id
   private String id;

   @Id
   private String name;

   @ElementCollection
   @CollectionTable(name = "employee_interests") 
   private Set<String> interests;
//COMPILE TIME ERROR LINE BELOW
   @ElementCollection
   private Set<ContractInformation> info;

    ...
    }

上記の場合、「マッピングには、禁止されたマッピング "phoneList" を持つ埋め込み可能な "main.ContractInformation" が含まれています。要素コレクションの埋め込み可能なものには、多対 1 または 1 対関係の「所有」側にある必要があり、結合テーブルを使用してはならない 1 つのマッピング"

これを修正する方法を教えてください。

事前に助けてくれてありがとう!!

4

1 に答える 1

1

エラーが示すように、埋め込み可能オブジェクトは、OneToMany や ManyToMany など、埋め込み可能オブジェクトを指す外部キーを必要とするマッピングを使用できません。これは、embeddable が、マッピングが指す必要がある外部キーの主キーを持っていないためです。代わりに、埋め込み可能な完全なエンティティを作成してください。

于 2013-09-17T11:44:53.697 に答える