私はhibernateを使用して、すべての列がnullではないと定義されているmysqlテーブルに挿入しています。一意の主キーと、いくつかの列に別の一意のインデックスがあります。
次のエラーが発生します。
org.springframework.dao.DataIntegrityViolationException:JDBCバッチ更新を実行できませんでした。SQL [MY_TABLE(col1、col2、col3、col4、ID_)の値(?、?、?、?、?)に挿入]; 制約[null]
このエラーはカスタマーログにあり、自分で問題を再現することはできないため、デバッグを行って挿入ステートメントの値を確認することはできません。
私の理解では、「制約[null]」は「nullではない」制約に違反していることを意味します。ただし、私のコードを見ると、hibernateがnull IDを挿入しようとしない限り、挿入時にデータがnullになる可能性のある方法を見つけることができません(これはhibernateの非常に悪いバグであるため、ありそうもない)。
ただし、一意の制約に違反している可能性があることがわかります。メッセージが誤解を招き、実際に一意のキー違反が発生している可能性はありますか?「constraint[null]」は常にnull以外の制約に違反したことを意味しますか?