【问题标题】:JPA @ManyToMany relationship without primary compound key on join table连接表上没有主复合键的 JPA @ManyToMany 关系
【发布时间】:2012-05-01 01:33:46
【问题描述】:

我有一个实体 A,它与实体 B 有 m: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 上执行此操作。 有什么提示吗?

【问题讨论】:

    标签: java sql jpa playframework ebean


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-15
      • 2018-05-19
      • 1970-01-01
      • 2021-07-31
      • 2015-10-18
      • 2012-05-18
      相关资源
      最近更新 更多