join - 如何使用 JdbcContext 在 Apache Metamodel 中表示 Self join?
问题描述
考虑我有一个employee
包含以下字段的表id, name, email, phone, joining_date, manager, department
。现在,在此表中manager
的字段可用于创建自联接并得出一个结果集,其中显示员工 e1 向经理 m1 报告。我如何使用 POJO 来表示JdbcDataContext
这个Query
?这里的任何指示都会很有帮助。
解决方案
您可以像 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()
推荐阅读
- javascript - 如何在 Matlab/Python/JS 中获取形状(/Body)的 X、Y(和 Z)坐标?
- cmake - 如何将没有价值的参数传递给 CMake?
- r - 这是 R 神经网络过拟合吗?
- c# - 特定字符之前的 C# 文本
- java - 将方法的返回值作为参数传递给同一类中的另一个方法
- ios - Swift 4 - PDFAnnotation 文本(或 UITextField)是文本的大小
- android - 恢复旧应用的应用id(Eclipse时代)
- android - 无法解析符号“LocalBroadcastManager”
- ios - 在 iOS PWA 中从 jsPDF 下载 PDF
- algorithm - 如何以最佳方式将元素放置在矩阵中,以使与其他元素的距离最小?