2008-10-03 5 views
2

У меня есть 2 таблицы:JPA и 2 простых таблиц

A 
s_id(key) name cli type 

B 
sa_id(key) s_id user pwd 

Так в JPA у меня есть:

@Entity 
class A...{ 
    @OneToMany(fetch=FetchType.EAGER) 
    @JoinTable(name="A_B", 
    joinColumns={@JoinColumn(name="a_id", table="a",unique=false)}, 
    inverseJoinColumns={@JoinColumn(name="b_id", table="b", unique=true)}) 
    Collection<B> getB(){...} 
} 

класс б только базовый класс сущностей без ссылки на А.

Надеюсь, это ясно. Мой вопрос: действительно ли мне нужна таблица соединений для такого простого соединения? Разве это невозможно сделать с помощью простой joincolumn или чего-то еще?

ответ

1

Для этого не требуется JoinTable. Если класс B не имеет никакого отношения к классу А, то следующий будет достаточно

@Entity class A...{ 
@OneToMany(fetch=FetchType.EAGER)  
Collection getB(){...} } 

В большинстве случаев, хотя вы можете двунаправленную связь в этом случае B имеет ссылку на A. В этом случае вам нужно будет искать в аннотации @mappedBy. упомянутый Павлом.

2

Нет, вам не нужен стол для соединения OneToMany. Посмотрите на @mappedBy annoatation

0

Быстрый ответ: если у вас есть отношения «Много-ко-многим», вам понадобится другая таблица. Если у вас есть отношения «один-ко-многим» или «много-к-одному», вы не будете.

Смежные вопросы