Предположим, что есть два класса: менеджер и инженер. Концептуально инженер может принадлежать только одному менеджеру, а менеджер может иметь несколько инженеров, но схематически они могут быть связаны идентификатором отдела. Однако между классами нет связи по внешнему ключу.
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 ответ
Вам необходимо указать @JoinColumn
вручную. Ознакомьтесь с этой статьей подробности
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.