Как представить Self join в Apache Metamodel, используя JdbcContext? - PullRequest
0 голосов
/ 30 апреля 2020

Предположим, у меня есть таблица employee со следующими полями id, name, email, phone, joining_date, manager, department. Теперь в этой таблице поле manager можно использовать для создания самостоятельного объединения и получения набора результатов, в котором говорится, что сотрудник e1 сообщает менеджеру m1 . Как мне представить это с помощью JdbcDataContext и Query POJO? Любые указатели здесь будут очень полезны.

1 Ответ

1 голос
/ 03 мая 2020

Вы делаете самостоятельные объединения, как и любое другое соединение в MetaModel. Вот пример:

DataContext dc = ...
Table t = dc.getDefaultSchema().getTableByName("employees");
FromItem left = new FromItem(t).setAlias("e1");
FromItem right = new FromItem(t).setAlias("e2");
SelectItem id = new SelectItem(t.getColumnByName("id"), left);
SelectItem name = new SelectItem(t.getColumnByName("name"), left);
SelectItem manager = new SelectItem(t.getColumnByName("id"), right);
SelectItem managerName = new SelectItem(t.getColumnByName("name"), right);
DataSet ds = dc.query().from(left).innerJoin(right).on(id, manager).select(name, managerName).execute()
...