org.springframework.dao.DataIntegrityViolationException misreporting cause?
我正在使用休眠来插入到mysql表中,其中所有列都被定义为不为空。它在多个列上具有唯一的主键和另一个唯一索引。
我收到以下错误:
org.springframework.dao.DataIntegrityViolationException: 無法執行 JDBC batch update;SQL [插入到MY_TABLE(col1, col2, col3, col4, ID_) values (?, ?, ?, ?, ?)];约束 [空]
此错误位于客户日志中,我无法自己重现问题,因此我无法进行调试以查看 insert 语句中的值。
我的理解是,“约束[null]”意味着违反了“not null”约束。但是,查看我的代码,我看不到任何可能的方式,即在插入时任何数据都可以为空,除非休眠尝试插入空ID(这将是休眠中非常糟糕的错误,因此似乎不太可能)。
但是,我可以看到如何发生违反唯一约束的情况。该消息是否有可能具有误导性,而我实际上遇到了唯一的密钥冲突?“constraint[null]”是否总是意味着违反了非 null 约束?