У меня есть сущности User и ActivationKey.Сущность ActivationKey относится к сущности User, созданной при создании пользователя, и удаляется после посещения пользователем ссылки, которая была отправлена на его электронную почту.
public class User implements Serializable {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
...
}
public class ActivationKey {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "user_id")
private Usuario usuario;
...
}
Дело в том, что при удаленииДе-ключ активации, пользователь также удаляется из-за каскада.
Есть ли способ избежать этого, но сохранить автоматическое удаление наоборот, что означает, что если пользователь будет удален, который не был активирован, он автоматически удаляет соответствующий ActivationKey перед удалением пользователя (из-за FK)?
Если я удаляю (cascade = CascadeType.ALL), то когда я пытаюсь удалить пользователя, который не был активирован,это терпит неудачу из-за FK.
Чего мне здесь не хватает?
Спасибо.