gpt4 book ai didi

java - 具有相同名称字段的 DbUtils QueryRunner

转载 作者:行者123 更新时间:2023-11-29 00:42:43 26 4
gpt4 key购买 nike

我发誓我以前做过这个并且效果很好,但似乎在我的查询(下面)中我无法映射同名的两列(在本例中为“电子邮件”),即使使用我查询中的“as”。我也尝试过不使用“as”——只使用“u.email assessorEmail”,该查询也能正常工作,但同样的问题是,当我调试时,该字段不会出现在我的结果中。

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 连接器?我确定我在这里遗漏了一些非常明显的东西......

最佳答案

在进一步挖掘之后,我发现了这个问题的错误列表 http://bugs.mysql.com/bug.php?id=32504 .似乎是连接器的问题。

将“useOldAliasMetadataBehavior=true”作为参数添加到 JDBC URL 就可以了。

关于java - 具有相同名称字段的 DbUtils QueryRunner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11574765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com