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;

    ...
    }

在上述情况下,我在上面提到的行中收到编译时错误,因为“映射包含一个可嵌入的”main.ContractInformation”和一个禁止的映射“phoneList”,元素集合中的嵌入可能只包含多对一或一对一一个映射必须位于关系的“拥有”一侧,并且不得使用连接表”

你能帮我解决这个问题吗?

提前感谢您的帮助!

4

1 回答 1

1

正如错误所述,嵌入不能使用需要外键指向嵌入的映射,例如 OneToMany 或 ManyToMany。这是因为可嵌入对象没有映射所需的外键指向的主键。而是让您的嵌入成为一个完整的实体。

于 2013-09-17T11:44:53.697 回答