JDBCTemplate set nested POJO with BeanPropertyRowMapper

后端 未结 5 2076
慢半拍i
慢半拍i 2020-12-07 22:17

Given the following example POJO\'s: (Assume Getters and Setters for all properties)

class User {
    String user_name;
    String display_name;
}

class Mes         


        
5条回答
  •  北荒
    北荒 (楼主)
    2020-12-07 22:28

    Perhaps you could pass in a custom RowMapper that could map each row of an aggregate join query (between message and user) to a Message and nested User. Something like this:

    List messages = jdbcTemplate.query("SELECT * FROM message m, user u WHERE u.message_id = m.message_id", new RowMapper() {
        @Override
        public Message mapRow(ResultSet rs, int rowNum) throws SQLException {
            Message message = new Message();
            message.setTitle(rs.getString(1));
            message.setQuestion(rs.getString(2));
    
            User user = new User();
            user.setUserName(rs.getString(3));
            user.setDisplayName(rs.getString(4));
    
            message.setUser(user);
    
            return message;
        }
    });
    

提交回复
热议问题