我目前遇到此问题:我有3个表:用户,角色和users_roles,如下图所示:
每当我编辑用户表中的任何记录时,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环境中编辑时。我不知道......