如何使用 JdbcContext 在 Apache 元模型中表示自连接?
How to represent Self join in Apache Metamodel using JdbcContext?
假设我有一个 employee
table,其中包含以下字段 id, name, email, phone, joining_date, manager, department
。现在,在此 table manager
字段中,可用于创建自连接并获得一个结果集,其中显示 employee e1 向经理 m1 报告。我如何使用 JdbcDataContext
和 Query
POJO 表示它?这里的任何指示都会很有帮助。
您可以像 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()
假设我有一个 employee
table,其中包含以下字段 id, name, email, phone, joining_date, manager, department
。现在,在此 table manager
字段中,可用于创建自连接并获得一个结果集,其中显示 employee e1 向经理 m1 报告。我如何使用 JdbcDataContext
和 Query
POJO 表示它?这里的任何指示都会很有帮助。
您可以像 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()