所以我有一个myuser实体,它指的是一个具有多对多关系的角色实体。但是当我尝试删除用户时,总是得到一个错误,即用户id总是在user\u role jointable上引用。。。
我已经试过了每一种。。。但是没有得到解决请帮忙谢谢
@Table(name = "users")
public class MyUser {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
... Other properties ...
@ManyToMany
@JoinTable(
name = "users_roles",
joinColumns = @JoinColumn(
name = "user_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(
name = "role_id", referencedColumnName = "id"))
private Collection<Role> roles;
// getters setters
}
@Entity
@Table(name = "roles")
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String role;
// getters setters
}
1条答案
按热度按时间d5vmydt91#
如文件所述:
为了
@ManyToMany
协会REMOVE
实体状态转换被级联是没有意义的,因为它将传播到链接表之外。由于另一侧可能被父一侧的其他实体引用,因此自动删除可能会以ConstraintViolationException
.所以,在移除之前
Role
你应该确信没有MyUser
与此角色链接的实体。