Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate:如何级联未映射的实体?_Java_Hibernate_Jpa - Fatal编程技术网

Java Hibernate:如何级联未映射的实体?

Java Hibernate:如何级联未映射的实体?,java,hibernate,jpa,Java,Hibernate,Jpa,是否可以在不映射一对多关系的情况下设置级联? 我有两个实体: @Entity @Table(name = "USER") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; ... } 及 如果我试图删除一个用户,并且存在该用户的任何记录,那么由于外键的原因,它显然会失败。我想在

是否可以在不映射一对多关系的情况下设置级联?

我有两个实体:

@Entity
@Table(name = "USER")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID")
    private Long id;

    ...
}

如果我试图删除一个用户,并且存在该用户的任何记录,那么由于外键的原因,它显然会失败。我想在删除用户之前删除该用户的所有记录。 我看到两种选择:

  • 映射
    记录为
    @OneToMany
    用户关系中的
    并设置
    cascade

    @OneToMany(mappedBy = "user", cascade = CascadeType.REMOVE)
    private Set<Record> records;
    
    @OneToMany(mappedBy=“user”,cascade=CascadeType.REMOVE)
    私人录音;
    
  • 在删除用户之前手动删除它们


  • 还有第三种选择吗?如何设置级联而不在用户实体中映射记录?

    级联在JPA中工作不好,最好手动处理

    @OneToMany(mappedBy = "user", cascade = CascadeType.REMOVE)
    private Set<Record> records;