私はエンティティ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で行っています。ヒントはありますか?