与@Embedded类的JPA @OneToMany关系用作@Id

时间:2013-05-14 16:42:35

标签: hibernate jpa associations

我有一个问题(我不确定是否可能)使用JPA来加入关联和嵌入式ID ...

我有一个Person类,其ID为:

@Entity
public class Person{
    @EmbeddedId
    private PersonCode personCode;
    private String name;

    @Embeddable
    public static class PersonCode{
        private String code;
    }
}

然后我想用关联创建一个类Company

@Entity
public class Company{
    private String name;

    @OneToMany
    private List<PersonCode> employees;
}

但我有这个例外:

Caused by: org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: example.domain.Company.employees[example.domain.Person$PersonCode]

1 个答案:

答案 0 :(得分:0)

关联必须在两个实体之间。公司应该有一个List<Person>

顺便说一句,你做得比必要的要困难得多。只需使用

@Entity
public class Person{
    @Id
    private String code;

    private String name;
}

没有理由将单个字段包装到可嵌入的类中。