NULL を確実に設定できるようにするには
提供: tknotebook
メインページ>コンピュータの部屋#Java>MyBtis Tips
MyBatis で SQL に パラメータに OGNL で値を渡すとき、実行時エラーになってしまうことがあります。
これは JDBC の仕様に起因しています。
JDBC では SQLパラメータに NULL をセットする時は
PreparedStattement#setNull(int parameterIndex, int sqlType)
を使いますが、値の設定にはなぜか、型の sqlType(JDBC型)が必要です。
多くの データベースでは java.sql.Type.OTHER や java.sql.Type.NULL を指定しておけばうまくセットして くれるのですが、MS SQLServer などはひねくれていて通してくれません。
そのような場合は OGNL でパラメータを指定する時
#{name, jdbcType=VARCHAR}
と明示します。