我有一个实体 A,与实体 B 有 am:n 关系,但是对于每个 A,不仅可以有多个 B,而且还可以有多个完全相同的 B。
我尝试定义这样的关系:
@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 持久性在 play framework 2.0 上执行此操作。有什么提示吗?