QA@IT

NamedParameterJdbcTemplateでWHERE句を設定すると値の取得が行えない。

4572 PV

NamedParameterJdbcTemplateについて質問させて頂きます。
下記のような形で、SELECTの実行結果を取得しようとしております。
環境
Java8
Tomcat8
MySQL5.7

pom.xmlの設定
org.springframework.boot spring-boot-starter-jdbc 1.5.2.RELEASE
com.h2database h2 1.3.176

    final String sql =
                            "SELECT " +
                            "  user.login_id " +
                            "  , user.user_id " +
                            "  , user.password " +
                            "  , user.maintenance_msg AS maintenance_msg " +
                            "  , user_authority.project_id " +
                            "  , user_authority.position_div " +
                            "  , user_authority.maintenance_msg AS authority_maintenance_msg " +
                            "FROM " +
                            "  user  " +
                            "  inner join user_authority " +
                            "    on user.user_id = user_authority.user_id " +
                            "WHERE " +
                            "  user.user_id = 1";


    SqlParameterSource bind = new MapSqlParameterSource();

    User login = jdbcTemplate.queryForObject(sql, bind, new RowMapper<User>() {
        @Override
        public User mapRow(ResultSet rs, int rowNum) throws SQLException {
            User login = new User();

            List<UserAuthority> userAuthorityList = new ArrayList<>();

            int i = 0;
            while(rs.next()){
                if(i==0){
                    login.setLoginId(rs.getString("login_id"));
                    login.setUserId(rs.getString("user_id"));
                    login.setPassword(rs.getString("password"));
                }

                UserAuthority userAuthority = new UserAuthority();
                userAuthority.setProjectId(rs.getString("project_id"));
                userAuthority.setPositionDiv(rs.getString("position_div"));
                userAuthorityList.add(userAuthority);
                i++;
            }
            login.setUserAuthority(userAuthorityList);
            return login;
        }
    });

    return login;

SELECT自体の実行は成功するのですが値の取得が行えません。
もちろん、DBには対象のデータは存在しています。

それと、WEHERE句の箇所を消して実行するとデータの取得が行えます。
なにかご存知な方がおりましたらご教授頂けると幸いです。
何卒宜しくお願い致します。

ウォッチ

この質問への回答やコメントをメールでお知らせします。