2013-05-14 140 views
0

我有一個問題(我不知道這是否是可能的)絲毫的關聯,並使用JPA嵌入式ID @Embedded類...JPA @OneToMany關係作爲@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] 

回答

0

關聯必須在兩個實體之間。該公司應該有一個List<Person>

順便說一句,你使它比需要更難。只需使用

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

    private String name; 
} 

沒有理由將單個字段包裝到可嵌入類中。

+0

由於一些DDD reccomendation,我試圖弄清楚如何管理兩個實體的關係,而不是兩者都不對另一個負責......所以如果有可能使用單個ID類來建立關係很容易實現......所以謝謝你! – rascio 2013-05-14 18:35:08