我最近在我的user和user_audit表中添加了一个新列“PASSWORD_RESET_REQUIRED”。
不是在我尝试删除用户时 我收到一个错误说:
无法插入NULL(“USER_AUD”。“PASSWORD_RESET_REQUIRED”)
@Entity
@Table(name = "sec_user", schema = "RZUL_DATA")
//Override the default Hibernate delete and set the termination date rather than deleting the record from the db.
@SQLDelete(sql = "UPDATE RZUL_DATA.sec_user SET trmn_dt = sysdate WHERE user_id = ?")
@Audited
public class User {
@NotEmpty
@Column(name = "password_reset_required", updatable = true, insertable = true)
private String isPasswordResetRequired;
... other properties
}
我的UserDao删除方法:
@Override
public boolean deleteUser(final User user) {
sessionFactory.getCurrentSession().delete(user);
NOTE: Till this point I can see the user.isPasswordResetRequired an a non null.
return true;
}
我可以错过哪一部分?
答案 0 :(得分:1)
当您尝试删除项时,Hibernate尝试将Child表上的外键列设置为null,因为它不能为您使用的SQL技术提供错误。尝试
@Cascade(value=CascadeType.ALL)
请参阅cannot insert null in one to many relatioship hibernate annotation
答案 1 :(得分:1)
确保您的*_HISTORY
表没有NOT NULL
数据列。