Стратегия создания таблиц Eclipse Link - PullRequest
0 голосов
/ 03 января 2011

Я использую EclipseLink в качестве поставщика JPA. Я хочу, чтобы Eclipse Link генерировал мои таблицы, поэтому я использовал drop-and-create-tables как стратегию генерации dll-ссылок eclipse в файле persistence.xml.

Мой вопрос таков:

Я хочу реализовать отношение «многие ко многим». У меня есть таблица аукционов и таблица предметов. На аукционе может быть много предметов, и один предмет может быть на многих аукционах.

Когда Eclipse Link сгенерировал таблицы, я увидел, что он создал четыре таблицы в БД. 1) Аукцион 2) Предмет аукциона 3) Предмет и 4) Предмет аукциона.

Auction_item имеет два столбца 1) Auction_id 2) item_id Item_acution имеет две колонки 1) Item_id 2) auction_id

Таким образом, Eclipse Link самостоятельно создал две таблицы мостов для сопоставления взаимосвязи «многие ко многим».

Разве у нас не может быть таблицы с одним мостом, имеющей аукцион_ид, элемент_ид для достижения того же самого? Если мы не можем, каковы причины?

Спасибо

1 Ответ

2 голосов
/ 04 января 2011

Вероятно, у вас есть два сопоставления @ManyToMany, но на одной стороне отсутствует указатель сопоставления.Это используется для указания того, что одна сторона использует информацию отображения, содержащуюся на другой стороне, и что эта сторона управляет этой стороной на уровне базы данных.
т.е.:

Auction class{
  @ManyToMany
  List items;
}

Items class {
  @ManyToMany(mappedby="items")
  List auctions;
}
...