【发布时间】:2022-01-04 12:58:37
【问题描述】:
我遇到了问题,因为我的选择返回了几行结果,因为 Options 对象有几个不同的选项,我需要在 java 中对这个结果进行分组。
我的父类是 QuestionEventDTO:
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class QuestionEventDTO {
public Long id;
public QuestionDTO question;
public List<QuestionDTO> questions;
}
我有女儿班:
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class QuestionDTO {
public Long id;
public OptionDTO option;
public List<OptionDTO> options;
}
我有孙女班:
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class OptionDTO {
public Long id;
public String description;
}
点击程序后,我设置了响应字段:
public class QuestionEventMapper implements RowMapper<QuestionEventDTO> {
@Override
public QuestionEventDTO mapRow(ResultSet rs, int rowNum) throws SQLException {
QuestionEventDTO dto = new QuestionEventDTO();
dto.setId(rs.getLong(1));
dto.setQuestion(new QuestionDTO(rs.getLong(2), new QuestionOptionDTO(rs.getLong(3), rs.getString(4)), null));
return dto;
}
}
QuestionEventDTO [id=1, question= QuestionDTO [id=1, option= OptionDTO [id=1, description="Are you Dev?"], options = []], questions =[]]
QuestionEventDTO [id=1, question= QuestionDTO [id=1, option= OptionDTO [id=2, description="What's rating?"], options = []], questions =[]]
QuestionEventDTO [id=2, question= QuestionDTO [id=2, option= OptionDTO [id=3, description="What's your dog's name?"], options = []], questions =[]]
QuestionEventDTO [id=2, question= QuestionDTO [id=2, option= OptionDTO [id=4, description="Are you Dev?"], options = []], questions =[]]
但我希望它保持这样:
QuestionEventDTO [id=1, question= null, questions = QuestionDTO [id=1, option= null, options = [OptionDTO [id=1, description="Are you Dev?"], OptionDTO [id=2, description="What's rating?"]]]]
QuestionEventDTO [id=2, question= null, questions = QuestionDTO [id=2, option= null, options = [OptionDTO [id=3, description="What's your dog's name?"], OptionDTO [id=4, description="Are you Dev?"]]]]
我在 lambda 方面没有太多经验,我想解决这个问题,有人可以帮助我吗?
【问题讨论】:
-
不要强迫自己写 lambda,用普通代码加上 for 循环就可以了,以后我们可以转成 lambda。
-
@huy 所以我尝试在没有 lambda 的情况下这样做,但它没有工作......
-
我没有看到您的代码从选择转换为预期数据。
-
你的选择怎么样?
-
这是我执行的程序,当我设置值时,我设置了我要在问题中发布的方式
标签: java lambda java-stream