我刚刚使用 spring PropertyEditors 从我的 Web 表单中设置了 id 的绑定,并注意到 M:M 记录正在被删除并重新插入。起初我认为这是因为我使用的是 CustomCollectionEditor,但 UserEditor 也是如此。
我的域对象都有 equals/hashcode 方法,如果对象尚未保存,则使用主键和 ref。
Hibernate: update delivery_team set name=? where id=?
Hibernate: delete from delivery_team_manager where delivery_team_id=?
Hibernate: delete from delivery_team_resource where delivery_team_id=?
Hibernate: insert into delivery_team_manager (delivery_team_id, user_id) values (?, ?)
Hibernate: insert into delivery_team_manager (delivery_team_id, user_id) values (?, ?)
Hibernate: insert into delivery_team_manager (delivery_team_id, user_id) values (?, ?)
Hibernate: insert into delivery_team_manager (delivery_team_id, user_id) values (?, ?)
我尝试使用单独的回发添加经理,并且没有删除记录。所以这显然不是休眠问题。
@RequestMapping(value = "add_manager/{teamid}/{uid}", method = RequestMethod.GET)
public String addManager(@PathVariable Long teamid, @PathVariable Long uid, Model model) {
DeliveryTeam team = deliveryTeamService.getById(teamid);
User user = userService.loadUserById(uid, false);
team.getManager().add(user);
deliveryTeamService.save(team);
return "redirect:/delivery_team/update/" + teamid;
}
有什么方法可以让绑定与休眠很好地结合?我希望将经理更改包含在表单提交中。