전이 작업을 수행했으나 정상적으로 작동했음을 맹세 합니다만, 아래 쿼리와 같은 이름의 두 열을 매핑 할 수 없습니다 (이 경우 대/소문자 '전자 메일')을 사용할 수 있습니다. 또한 "u.email assessorEmail"을 가지고있는 "as"없이 시도했지만 쿼리가 제대로 작동하지만 동일한 문제가있을 때 디버깅 할 때 필드가 내 결과에 나타나지 않습니다.DbUtils QueryRunner에 같은 이름의 필드가 있습니다.
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
[email protected] 547 John Doe [email protected] 0
Eclipse->를 검사 변수 :
[{valid=false, invalidreason=, [email protected], surname=Doe, firstName=John, formid=547}]
내가 쿼리에서 f.email를 제거하면 u.email가 '이메일'로 성공적으로 나타납니다 (여전히 평가자 이메일이 아닙니다).
DbUtils 문제입니까? QueryRunner의 것? 심지어 MySQL의 자바 커넥터 일이? 나는 여기에 정말로 분명한 것을 놓치고 있다고 확신한다 ...
아마도 MySQL 드라이버 문제 일 수 있습니다. 그러나 DbUtils에서이 영역의 수정 (및 아마도 회귀)이있었습니다 (주로 생각하는 드라이버 단점을 해결하기 위해). 다른 버전의 모듈을 사용해 볼 수 있습니까? – Thilo
DBUtils, MySQL Connector 및 MySQL 자체를 최신으로 업데이트하려고 시도했지만 불행히도 그 트릭을 수행하지는 못했습니다. 나중에 다른 코드에서 작동하는 데 익숙한 것을 발견하면 나중에 더 오래된 조합을 시도해 볼 수 있습니다. – Moo2u2