MyBatisでNULLのフィールドを更新しようとするとエラーになる、どうすればよいか

MyBatisでは、あるフィールドをNULLに更新する際、#{null}と表記する必要がある。NULLキーワードをそのまま使用すると文字列「NULL」と認識されてしまう。

User テーブルに username フィールドがあり、そのフィールドを NULL に更新したい場合、次のように記述します。

<update id="updateUsernameToNull" parameterType="int">
  UPDATE User
  SET username = #{null}
  WHERE id = #{id}
</update>

なお、上記の例の#{null}はNULL値を表しており、変数やパラメータ名ではありません。

コードにエラーがある場合は、正しい#{null}構文を使用しているかどうかを確認してください。

bannerAds