【发布时间】:2018-11-21 00:42:47
【问题描述】:
我有一个 User 和 ActivationKey 实体。 ActivationKey 实体是指在创建用户时创建的用户实体,一旦用户访问了已发送到其电子邮件的链接,它就会被删除。
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 而失败。
我在这里错过了什么?
谢谢。
【问题讨论】:
标签: hibernate jpa cascading-deletes