我正在使用 JPA2 和 Hibernate 实现。
我有这样的简单映射:
@Entity
class Topic {
@Id
@GeneratedValue(strategy = IDENTITY)
int id;
@OneToOne(cascade = ALL)
@JoinColumn(name = "id_poll")
private Poll poll;
}
@Entity
class Poll {
@Id
@GeneratedValue(strategy = IDENTITY)
int id;
}
现在,当我删除也在 Topic 中的 Poll 对象时,我得到一个错误。
java.sql.SQLException:完整性约束违反 FKCC42D924982D3F4B 表:语句中的 TOPICS [从 id=? 的投票中删除]
我知道这是因为如果轮询记录在另一个表中有引用,我无法删除它。我怎么解决这个问题?我必须在主题表中手动设置 poll = null 还是有更好的解决方案?