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