所以我有一个用Thymeleaf和Spring MVC创建的动态表单,我所拥有的父对象名为StudySet
,其列表为Rows
,行是'拥有一个名为Row
的对象。
现在我在arrayList
上有一个rows
StudySet
,当我在调试模式下运行我的应用程序时,我可以看到它。您可以在下面的图片中看到。
此时我尝试做的就是将studySet设置为所有行,然后保存studySet和控制器中的行,这样在我的应用程序的另一部分,我可以拉分配给特定studySet的行。
这是我的控制器中的POST方法中的代码
@RequestMapping(value="createStudySet", method=RequestMethod.POST)
public String createSetPost (@ModelAttribute StudySet studySet, ModelMap model, @AuthenticationPrincipal User user) {
studySet.setUser(user);
user.getStudySet().add(studySet);
List<Row> rows = studySet.getRows();
((List<Row>) ((Row) rows).getStudySet()).addAll((Collection<? extends Row>) studySet);
studySetRepo.save(studySet);
return "redirect:/answers";
}
此代码不起作用,但我认为它可以将我rows
保存到studySet
时尝试完成的工作。
如果有人能够找到解决问题的方法并帮助我,那就太好了,先谢谢。
答案 0 :(得分:0)
似乎问题在于这一行:
((List<Row>) ((Row) rows).getStudySet()).addAll((Collection<? extends Row>) studySet);
据我了解你的问题,你应该做类似(或类似)的事情:
for (Row row : rows) {
row.setStudySet(row.getStudySet().addAll(studySet))
}