Java 使用JPA进行合成和删除
我有一个Java 使用JPA进行合成和删除,java,jpa,annotations,eclipselink,Java,Jpa,Annotations,Eclipselink,我有一个角色,可以引用一组权限s 如何注释这两个类以适应组合(而不是聚合),其中: 如果启用了角色,则权限将继续存在 删除 如果角色没有权限s,则它将继续存在 附言:合并/持久化应该如何处理这一问题?这是一个ManyToMany关系,用@ManyToMany注释。如果需要有一个单向多个,那么只需注释与权限相关的角色类的成员字段或getter方法(分别取决于访问类型字段或属性)。如果需要双向关系,则必须对这两个类进行注释,并在非拥有方/目标方指定mappedBy注释属性,即权限类 要实现此关系
角色
,可以引用一组权限
s
如何注释这两个类以适应组合(而不是聚合),其中:
- 如果启用了
,则角色
将继续存在 删除权限
- 如果
角色没有
s,则它将继续存在权限
附言:合并/持久化应该如何处理这一问题?这是一个
ManyToMany
关系,用@ManyToMany
注释。如果需要有一个单向多个
,那么只需注释与权限
相关的角色
类的成员字段或getter方法(分别取决于访问类型字段或属性)。如果需要双向
关系,则必须对这两个类进行注释,并在非拥有方/目标方指定mappedBy
注释属性,即权限
类
要实现此关系,如果尚未存在,联接表
将被创建(如果存在,@JoinTable
可能需要指定确切的表名和列名)
关于持久化和合并,当角色
持久化/合并时,关联的权限
也将被持久化/合并,并且将创建联接表中的关联项,就像在多对多关系中一样,默认情况下,所有者端操作是级联的(所有者侧是没有mappedBy
属性的侧)
因此,双向多对多的设置类似于
@Entity
public class Role {
....
@ManyToMany
private Set<Permission> permissions;
....
@Entity
public class Permission{
.....
@ManyToMany(mappedBy="permissions")
private List<Role> roles;
....
@实体
公共阶级角色{
....
@许多
私有设置权限;
....
@实体
公共类许可{
.....
@ManyToMany(mappedBy=“权限”)
私有列表角色;
....
还可以查看规范
这本好书