MySQLIntegrityConstraintViolationExceptionの対処法

MySQLIntegrityConstraintViolationException: Column 'カラム名' cannot be null

という例外はnullが入ってはならないカラムに対してnullが入ってしまう場合に起こる例外です。
この例外が起きるケースとしては、データベースにコミットする処理の引数にそのまま値を取得する処理を書いてしまい、

その値を取得する処理においてエラーが起きた際のreturn nullなどが引数に入ってしまうことなどが考えられます。

例)

insertData(getId());

getId(){
    if(id != 0){
        return id;
    } else {
        return null
    }
}

例としてあげたコードは実際のものではありませんが、このgetId()でnullが返されてしまった場合はinsertData()(カラムにデータを入れる処理)の引数にそのままnullが入ってしまいMySQLIntegrityConstraintViolationExceptionが発生してしまいます。

対処法としてはnullが必ず返されないようにする、もしくはinsertDataの前にgetId()で取得した値のnullチェックを行うことが挙げられます。

業務管理SaaS「クロジカ」のエンジニアメンバーを募集!
自社開発のSaaSプロダクトをアジャイル開発して、実践的な経験を積んでいただけます。