Можно ли установить каскад, не сопоставляя одно или несколько отношений?
У меня есть две сущности:
@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
s как @OneToMany
отношение в User
и набор cascade
.
@OneToMany(mappedBy = "user", cascade = CascadeType.REMOVE)
private Set<Record> records;
Удалить их вручную перед удалением пользователя
Есть ли третий вариант, как установить каскад без отображения записей в пользовательской сущности?