我发誓我以前做过,而且效果很好,但似乎使用我的查询(如下),即使使用“as”,我也无法映射两个同名的列(在本例中为“email”)在我的查询中。我也尝试过不使用“as” - 只是使用 'u.emailassessorEmail' 并且该查询也可以正常工作,但同样的问题是,当我调试时,该字段不会出现在我的结果中。
getQueryRunner().query("SELECT u.email AS assessorEmail, f.formid, f.firstName, f.surname, f.email, f.valid, f.invalidreason FROM users AS u RIGHT JOIN userforms AS uf ON u.id=uf.user LEFT JOIN forms AS f ON uf.form=f.formid WHERE u.role=? AND f.submitted=1 AND f.valid=0 ORDER BY u.email", new MapListHandler(), Role.ASSESSOR);
MySql 结果:
assessorEmail formid firstName surname email valid invalidreason
assessor@test.com 547 John Doe user@test.com 0
Eclipse->检查变量:
[{valid=false, invalidreason=, email=user@test.com, surname=Doe, firstName=John, formid=547}]
如果我从查询中删除 f.email,u.email 会成功显示为“email”(仍然不是assessorEmail)。
这是 DbUtils 的事情吗?一个 QueryRunner 的东西?甚至是 MySql Java 连接器?我确定我在这里遗漏了一些非常明显的东西......