Posted at

application.ymlでJdbcTypeForNullにNULLを指定する場合はクォーテーションをつける

More than 1 year has passed since last update.

タイトルのとおりです。単純なことですがハマったので書き残しておきます。


環境


  • Spring Boot 2.0.2

  • MyBatis 1.3.2


application.ymlにおけるJdbcTypeForNullの設定方法

yamlで値としてNULLを指定すると、読み込み時にnull値として扱われてしまいます。

JdbcTypeForNullの値にJdbcType.NULLを設定したい場合、application.ymlではクォーテーション付きで'NULL'と指定する必要があります。


application.yml

mybatis:

configuration:
jdbc-type-for-null: 'NULL'

ちなみに、プロパティファイルの場合は、値は常に文字列で扱われるため、クォーテーションは必要ありません


application.properties

mybatis.configuration.jdbc-type-for-null=NULL



JdbcTypeForNullについて

DBのカラムにnullを設定する際は、NULL値とJDBC型のマッピングを指定する必要があります。

Mybatisでは、デフォルトでJdbcType.OTHERが指定されるように設定されていますが、Oracleなど一部のJDBCドライバはJdbcType.OTHERをサポートしていないため、デフォルト設定ではエラーが発生します。

Oracleの場合はJdbcType.NULLを指定すると解決するようです。


参考URL