JPA Hibernate ManyToMany с неуникальным ключом - PullRequest
1 голос
/ 30 сентября 2011

У меня есть две сущности (таблицы): Отдел и Человек .Обе таблицы имеют поле CODE , которое не уникально .

Как определить множество двунаправленных связей между этими таблицами?

  1. Отдел имеет коллекцию Person, которая содержит все сущности с Person.CODE eq Department.CODE
  2. Партнер имеет коллекцию Department, которая содержит все сущности с Department.CODE eq Partner.CODE

Мне нужно определение отношения - нет запросов sql или hpql.

это не проблема, сделать это сHPQL, но мне нужна аннотация.

Выбор людей для данного отдела ID:

select P.* from Person P, Deparment d  
where d.department_id = ? and 
p.code = d.code and 
? between d.validFrom and d.validTill and  
? between p.validFrom and p.validTill 

Это возможно с формулой гибернации?

1 Ответ

0 голосов
/ 30 сентября 2011

Вам, безусловно, понадобится третья таблица в БД, чтобы иметь отношение «многие ко многим», назовите ее «1001». Объявите два внешних ключа из этого, которые ссылаются на Persons и Departments таблицу.

После этого вы можете:

1) определить новую сущность JPA для DepartmentPerson и определить отношения «многие-к-одному» для каждого внешнего ключа. Следовательно, вы должны создать два отношения «один ко многим», которые указывали бы от Persons DepartmentPerson и от Department до DepartmentPerson с получением необходимых вам коллекций.

2) определить отношение «многие ко многим» в одной из двух начальных сущностей, указав, что department_person является владельцем отношения.

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