gpt4 book ai didi

java - 使用JPA的组合和删除

转载 作者:行者123 更新时间:2023-12-01 12:54:42 25 4
gpt4 key购买 nike

我有一个可以引用一组权限角色

如何注释两个类以适应组合(而不是聚合):

  • 如果角色存在,权限将继续存在删除了?
  • 如果没有权限角色将继续存在。

P.S:应该如何通过合并/持久来处理这个问题?

最佳答案

这是一个ManyToMany关系用 @ManyToMany 注释。如果需要有unidirectional ManyToMany然后只需注释 Role 的成员字段或 getter 方法(分别取决于访问类型字段或属性)与 Permission 相关的类(class)。如果您需要bidirectional那么您必须注释这两个类并指定 mappedBy非拥有/目标端的注释属性,Permission类。

要实现这种关系,需要 join table如果尚不存在,则将被创建(如果存在,可能需要 @JoinTable 来指定确切的表名和列名)。

关于持久化和合并,当 Role保留/合并关联的 Permissions也将被持久化/合并,并且将创建连接表中的关联条目,就像在多对多关系中一样,默认情况下,所有者端操作是级联的(所有者端是没有 mappedBy 属性的一侧)。

因此双向多对多的设置类似于,

@Entity
public class Role {
....
@ManyToMany
private Set<Permission> permissions;
....


@Entity
public class Permission{
.....
@ManyToMany(mappedBy="permissions")
private List<Role> roles;
....

另请查看规范 http://download.oracle.com/otndocs/jcp/persistence-2_1-fr-spec/index.html这本精彩的书http://www.apress.com/9781430219569

关于java - 使用JPA的组合和删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23985945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com