Hibernate 使用级联删除休眠多个关系
我需要实现基于角色权限的身份验证。情况是这样的 角色具有多个/多个权限。 相反,, 可以将权限分配给多个角色。 所以,这个团队设计了三个表名 1) 角色(列:roleId、name、desc) 2) 右(列:rightId、name、desc) 3) RoleRightAssociation(列:roleId、rightId、assignedDate、assignedBy) 第三个表存储的数据如下: 用户“X”在特定日期将右侧“A”分配给角色“B”。 用例是, 删除角色时,必须删除该角色对应的RoleRightAssociation中的所有条目(删除级联)。但不是从一张合适的桌子上 我为此创建了三个实体,并给出了如下关系:, 角色: PrimaryKeyRoleRight:Hibernate 使用级联删除休眠多个关系,hibernate,jpa,Hibernate,Jpa,我需要实现基于角色权限的身份验证。情况是这样的 角色具有多个/多个权限。 相反,, 可以将权限分配给多个角色。 所以,这个团队设计了三个表名 1) 角色(列:roleId、name、desc) 2) 右(列:rightId、name、desc) 3) RoleRightAssociation(列:roleId、rightId、assignedDate、assignedBy) 第三个表存储的数据如下: 用户“X”在特定日期将右侧“A”分配给角色“B”。 用例是, 删除角色时,必须删除该角色对应的R
@ManyToOne(cascade = CascadeType.ALL)
private Role roleId;
@ManyToOne(cascade = CascadeType.ALL)
private Right rightId;
我不能满足给定的用例。
我需要在受尊敬的JPA实体中应用什么关系
提前感谢。Cascade.ALL不包括
删除孤立文件
您必须在角色
实体中的角色列表
中添加孤立删除=true
@OneToMany(mappedBy="roleRoghtId.rightId",cascade=CascadeType.ALL)
private List<RoleRight> roleRightsList;
@Entity
@Table(name = "RoleRight")
@AssociationOverrides({
@AssociationOverride(name = "roleRoghtId.roleId",joinColumns = @JoinColumn(name = "roleId")),
@AssociationOverride(name = "roleRoghtId.rightId",joinColumns = @JoinColumn(name = "rightId")) })
public class RoleRightAssociation {
...
@EmbeddedId
private PrimaryKeyRoleRight roleRoghtId=new PrimaryKeyRoleRight();
...
}
@ManyToOne(cascade = CascadeType.ALL)
private Role roleId;
@ManyToOne(cascade = CascadeType.ALL)
private Right rightId;