以前にこれを行ったことがあり、正常に機能していることを誓いますが、(以下の) クエリでは、「as」を使用している場合でも、同じ名前 (この場合は「email」) の 2 つの列をマップできないようです。私のクエリで。「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 コネクタでさえありますか? ここで本当に明白な何かが欠けていると確信しています...