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は、プライマリ複合キーを除いて問題ありません。これは、1つのAが一度に1つの特定のBしか持てないことを意味するためです。私はこれをebeanの永続性を備えたPlayFramework2.0で行っています。ヒントはありますか?

4

1 に答える 1

0

@ManyToManyは、その定義により、必要な複製を許可しないため、使用できません。

必要なのは、要素のリスト(JPAなど@ElementCollection)か、モデル内でテーブルを無関係に保ち、クエリを使用してAに関連付けられたBを取得することです。

私はebeansのドキュメントにリンクしますが、それはPDFです... :(

于 2012-05-01T07:50:32.533 に答える