2012-05-01 3 views
1

У меня есть сущность A с отношением am: n к объекту B, однако для каждого A может быть не только несколько B, но, кроме того, несколько одинаковых B.JPA @ManyToMany отношения без основного составного ключа в таблице соединений

Я попытался определения соотношения вроде этого:

@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 за один раз. Я делаю это на play framework 2.0 с сохранением ebean. Любые подсказки?

ответ

0

Вы не можете использовать @ManyToMany, так как по его определению он не позволит дублирования, которые вы хотите.

Что вы хотите, либо список элементов (как JPA @ElementCollection) или держать таблицы не связаны в модели и использовать запрос для получения B, связанный с А.

Я бы ссылку на ebeans документации, но с этим является PDF ... :(