JOOQ如何自我加入

第一罪

现在我的代码如下:

EmployeeTable employee = EMPLOYEE.as("employee");
EmployeeTable boss = EMPLOYEE.as("boss");

Map<Employee, Employee> result = dslContext.select(employee.fields())
        .from(employee)
        .join(boss)
        .on(employee.BOSS_ID.eq(boss.ID))
        .fetch()
        .intoMap(Employee.class, Employee.class);

我需要Map填写表格<Employee(employee), Employee(boss)>换句话说,关键是员工,而价值是他的老板。但是,由于执行了代码,结果Map是返回了a ,其中键和值都是老板。我该如何解决这个问题?

卢卡斯·埃德(Lukas Eder)

您必须修复两件事:

  1. 投影所有的列,包括"boss"表的列,而不仅仅是"employee"表的列
  2. 使用正确的intoMap(Table, Table)过载

即:

Map<Employee, Employee> result = 
dslContext.select() // Just leave this empty, or project everything explicitly
          .from(employee)
          .join(boss)
          .on(employee.BOSS_ID.eq(boss.ID))
          .fetch()
          .intoMap(employee, boss);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章