是否可以在不映射一对多关系的情况下设置级联?
我有两个实体:
@Entity
@Table(name = "USER")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID")
private Long id;
...
}
和
@Entity
@Table(name = "RECORD")
public class Record {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID")
private Long id;
@ManyToOne
@JoinColumn(name = "USER")
private User user;
...
}
如果我尝试删除一个用户并且该用户存在任何记录,则显然是由于外键失败。我想在删除用户之前删除所有用户记录。 我看到两个选择:
将Record
映射为@OneToMany
中的User
关系,并设置cascade
。
@OneToMany(mappedBy = "user", cascade = CascadeType.REMOVE)
private Set<Record> records;
在删除用户之前手动删除它们
有没有第三种选择,如何设置级联而不映射用户实体中的记录?
答案 0 :(得分:-2)
级联对JPA不利,最好手动处理。