2012-05-01 40 views
1

我有一个实体A与具有am:n关系的实体B,但是对于每个A,不仅可以有多个B,而且还有多个完全相同的B.JPA @ManyToMany关系没有在主表上的主要复合关键字

我试图定义这样的关系:

@Entity 
class A { 
    @Id 
    public Long id; 

    @ManyToMany 
    public List<B> bs = new ArrayList<B>(); 
} 

@Entity 
class B { 
    @Id 
    public Long id; 
} 

这给了我下面生成的DDL连接表:

create table a_b (
a_id       bigint not null, 
b_id      bigint not null, 
constraint pk_a_b primary key (a_id, b_id)) 
; 

除主复合键以外,DDL是好的,因为这意味着一个A只能有一个特定的B一次。 我正在做这个与ebean持久性的播放框架2.0。 任何提示?

回答

0

你不能使用@ManyToMany,因为它的定义不允许你想要的重复。

你想要什么或者是元素(如JPA @ElementCollection)或保持表无关模型,并使用查询检索关联到A.

的B I会链接到ebeans文档的列表,但它是一个PDF ... :(