链接父和子实体Hibernate JA

时间:2016-03-17 10:09:53

标签: java hibernate jpa many-to-many one-to-many

我一直在努力寻找一种将Role实体与Java Hibernate中的User实体相关联的好方法。我有一个User实体,其中包含Role个实体列表。我希望将它们联系起来,以便在删除User时,所有Role个具有该User的实体也会被级联等删除。

我开始使用@OneToManyUser)& ManyToOneRole)两个实体之间的关系,但是当我删除用户时,它只是将user表中包含role的列设置为{{1} }。然后建议关系为NULL,但这导致@ManyToMany我尚未成功解决。因此,我想问一下,在我走得太远之前,Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElementsUser之间达到理想关系的最佳途径是什么。

请注意:在此示例中,Role更多是权限,因此用户可以拥有相同的权限,但会将其链接到用户名。在下表中,您可以看到Roledigby.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]

感谢您的反馈,我已经尝试解决这个问题超过一天了,所以非常感谢。

0 个答案:

没有答案