JPA и 2 простых стола - PullRequest
       16

JPA и 2 простых стола

2 голосов
/ 03 октября 2008

У меня есть 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(){...}
}

класс b - это просто базовый класс сущности без ссылки на A.

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

Ответы [ 3 ]

2 голосов
/ 03 октября 2008

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

1 голос
/ 20 октября 2008

Вам не нужен JoinTable для этого. Если класс B не имеет ссылки на класс A, то будет достаточно следующего

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

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

0 голосов
/ 03 октября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...