【发布时间】:2012-02-05 21:42:57
【问题描述】:
我正在使用 Hibernate 的 @OrderColumn 注释在我的数据库中排序一个列表。它在数据库表中正确生成列来存储索引,并且最初还存储正确的索引。
但是当我尝试更改列表中的排序然后使用 Spring Roo 的 merge() 方法更新数据库时,排序不会更改。
这是我的实体的代码:
@RooJavaBean
@RooToString
@RooEntity
public class Story {
@ManyToMany(cascade = CascadeType.ALL)
@OrderColumn
private List<Slide> slides = new ArrayList<Slide>();
@ManyToOne
private Question question;
private String title;
}
这里是调用merge函数的更新方法:
@RequestMapping(method = RequestMethod.PUT)
public String StoryController.update(@Valid Story story, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
if (bindingResult.hasErrors()) {
uiModel.addAttribute("story", story);
return "storys/update";
}
uiModel.asMap().clear();
story.merge();
return "redirect:/storys/" + encodeUrlPathSegment(story.getId().toString(), httpServletRequest);
}
我通过调试检查了story 对象在slides 列表中具有更新的索引。
【问题讨论】:
标签: java hibernate spring jpa spring-roo