Затмение + Спящий + Весенний вопрос - PullRequest
0 голосов
/ 18 мая 2011

Я не могу понять, как организовать занятия в проекте ...

Мне нужно показать всем работникам их историю специальностей (типов).

У меня есть 3 таблицы в БД: Работники: идентификатор, имя, адрес Специальность: идентификатор, описание Worker_Type: id_worker, id_specialty, hire_date

У меня есть:

class Specialty
{
    ... 
}

class Worker
{
    private List<Specialty> history;
    ...
}

Как мне сопоставить Specialty (Class) с двумя таблицами (Specialty и Worker_Specialty), чтобы получить всю информацию об истории включения работника?

Может быть, мне нужно создать еще один класс SpecialtyHistory и сопоставить его с Worker_Specialty?

1 Ответ

5 голосов
/ 18 мая 2011

То, что вы описываете, называется троичной ассоциацией или, другими словами, отношением «многие ко многим», которое включает добавление информации о самих отношениях.Существует несколько подходов к отображению троичных ассоциаций, один из которых заключается в создании класса SpecialtyHistory, как вы упомянули, рассматривая отношения как сущность первого класса.Если вам не нужна hire_date, вы можете просто использовать обычное отображение «многие ко многим».

Документация Hibernate содержит дополнительную информацию о троичных ассоциациях .

Некоторые предыдущиеВопросы StackOverflow: hibernate: отображение троичной ассоциации и Тернарные (и n-арные) отношения в Hibernate .

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