1

我有一个实体 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 上执行此操作。有什么提示吗?

4

1 回答 1

0

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

您想要的是元素列表(如 JPA @ElementCollection)或保持模型中不相关的表并使用 Query 检索与 A 关联的 B。

我会链接到 ebeans 文档,但它是 PDF ... :(

于 2012-05-01T07:50:32.533 回答