MyBatisを使って、insertやupdate、delete時にnullを設定するとエラーとなったときの対処法をメモしておきます。例えば、以下のSQL文の#{name}
や#{tel}
にnullを設定するとTypeException
が発生します。
jdbcType
を指定する必要がある
JDBCの仕様で、insertやupdate、deleteでnullが許可されている列を指定する場合、JDBCデータ型(jdbcType
)を指定する必要があります。サポートされているJDBCデータ型の一覧は、MyBatisのドキュメントに記載されています。nullだとカラムのデータ型がわからないので、きちんと定義してねってことのようです。
具体的に上記コードを書き直してみると、以下のようになります。
まとめ
MyBatisでinsertやupdate、delete時にnullを設定するときは忘れずjdbcType
を設定しましょう。