尝试编辑记录时数据丢失

时间:2015-10-12 16:27:31

标签: mysql spring hibernate

我目前遇到此问题:我有3个表:用户,角色和users_roles,如下图所示:

EER

每当我编辑用户表中的任何记录时,user_roles表中该用户的记录都将丢失。
例如,我更改了持有userId = 2的用户的用户名,然后在users_roles表中,userId = 2的行将丢失。

有人对这个问题有任何想法吗?我使用Spring with Hibernate

* UPDATE

在我的Role.java中

@ManyToMany(fetch = FetchType.EAGER, mappedBy = "roles")
private List<User> users;

在我的User.java中

@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinTable(name = "users_roles", joinColumns = @JoinColumn(name = "userId", nullable = false) , inverseJoinColumns = @JoinColumn(name = "roleId", nullable = false) )
    private List<Role> roles;

在我的UsersRoles.java

@Id
@Column(name="userId")
private int userId;

@Id
@Column(name="roleId")
private int roleId;

这是我用于编辑

的DAO实现方法
@Override
public void edit(User user) {
session.getCurrentSession().saveOrUpdate(user);
}

P / S:这不仅发生在我使用我的网络应用程序进行编辑时,而且还发生在我直接在MySQL环境中编辑时。我不知道......

0 个答案:

没有答案