0

我刚刚使用 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;
}

有什么方法可以让绑定与休眠很好地结合?我希望将经理更改包含在表单提交中。

4

1 回答 1

0

使用转换服务解决了这个问题,因为它单独转换每个实体而不是集合本身。

于 2013-07-30T09:53:37.883 回答