我一直在努力寻找一种将Role
实体与Java Hibernate中的User
实体相关联的好方法。我有一个User
实体,其中包含Role
个实体列表。我希望将它们联系起来,以便在删除User
时,所有Role
个具有该User
的实体也会被级联等删除。
我开始使用@OneToMany
(User
)& ManyToOne
(Role
)两个实体之间的关系,但是当我删除用户时,它只是将user
表中包含role
的列设置为{{1} }。然后建议关系为NULL
,但这导致@ManyToMany
我尚未成功解决。因此,我想问一下,在我走得太远之前,Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements
和User
之间达到理想关系的最佳途径是什么。
请注意:在此示例中,Role
更多是权限,因此用户可以拥有相同的权限,但会将其链接到用户名。在下表中,您可以看到Role
与digby.tyson
具有相同的role
号。 7,但如果reed.robert
已删除,则digby
上的role
应保留
User.java
reed
Role.java
@SerializedName("userrole")
@Expose
// @OneToMany(mappedBy = "user", fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
private List<Role> userRoles = new ArrayList<Role>();
样本表
@Entity
@Table(name = "role")
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
private RoleEnum role;
// @ManyToMany / @ManyToOne
@JoinColumn(name = "user")
private User user;
[Getters & Setters]
感谢您的反馈,我已经尝试解决这个问题超过一天了,所以非常感谢。