简体   繁体   English

如何使用 JdbcContext 在 Apache 元模型中表示 Self join?

[英]How to represent Self join in Apache Metamodel using JdbcContext?

Consider I have an employee table which has the following fields id, name, email, phone, joining_date, manager, department .考虑我有一个employee表,其中包含以下字段id, name, email, phone, joining_date, manager, department Now in this table manager field can be used to create a self join and arrive at a result set which says employee e1 reports to manager m1 .现在,在此表中, manager字段可用于创建自联接并得出一个结果集,其中显示员工 e1 向经理 m1 报告 How do I represent this using JdbcDataContext and the Query POJO?我如何使用JdbcDataContextQuery POJO 来表示它? Any pointers here will be much helpful.这里的任何指示都会很有帮助。

You do self-joins just like any other join in MetaModel.您可以像 MetaModel 中的任何其他联接一样进行自联接。 Here's an example:这是一个例子:

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()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM