Как сопоставить результат «один ко многим» с объектом Hibernate, который соединен с использованием неосновного ключа? - PullRequest
0 голосов
/ 27 апреля 2020

Предположим, есть два класса, менеджер и инженер. Концептуально инженер может принадлежать только одному менеджеру, а менеджер может иметь несколько инженеров, но схематически они могут быть связаны идентификатором отдела. Однако между классами нет связи между внешними ключами.

public class Manager {
   .....
   private Long deptId; 
 } 

public class Engineer {
   .....
   private Long deptId; 
 }

Следующий запрос работает в mySQL:

select * from manager m left join engineer e on m.dept_id = e.dept_id.

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

public class Manager {
   .....
   private Long deptId; 

   @OnetoMany
   private List<Engineer> engineers;
 } 

@ManytoOne и @OnetoMany ожидают использования внешнего ключа для отображения, поэтому вышеприведенное не работает. Есть ли другие способы добиться этого?

1 Ответ

0 голосов
/ 27 апреля 2020

Вам необходимо указать @JoinColumn вручную. Проверьте эту статью для деталей

...