MyBatis Spring Boot Starter文档列出了可以在application.properties文件中设置的属性,该列表包括:
配置:MyBatis配置bean。关于可用属性,请参见MyBatis参考页。
从那里不是很明显,但是我认为这表明您可以添加如下内容:
mybatis.configuration.jdbcTypeForNull=VARCHAR
这似乎可行;当然,如果我更改VARCHAR
了对于枚举JdbcType无效的值,则会收到错误消息。但是,它似乎也没有改变我的设置。
使用调试器时,可以看到在之前MybatisProperties.setConfiguration()
调用,这意味着使用默认值()而不是我尝试设置的值。 Configuration.setJdbcTypeForNull()
JdbcType.OTHER
我是否误解了应该如何使用此功能,或者这是一个错误?还有其他人设置这样的配置值吗?在其他地方,我只能看到使用XML文件的示例,如果可能的话,我宁愿避免使用。
我放弃了尝试使用中的configuration
属性application.properties
,而采用了我试图避免的XML配置,但是直到现在,在这里看到一些有用的建议后,我回到了我的代码,将其从XML配置更改为拥有mybatis.configuration.jdbcTypeForNull=NULL
并重新运行了我的测试,该测试在以前相同的条件下肯定会失败,但是现在通过了。
我不知道与以前有什么不同-调试时,我看到了与上述相同的行为-配置bean似乎在启动过程中将jdbcTypeForNull参数设置为OTHER,但是在查询期间对其进行访问时,它将再次为NULL。我将在这里留下这个问题,以防万一它是一个竞赛条件,并且稍后又开始失败,但是现在我的问题似乎已经神秘地消失了。
如果要使用mybatis.configuration.jdbcTypeForNull
,请记住不要同时指定configLocation
属性。否则,您的设置将被清除为默认设置。
正如春季靴子所做的那样,MybatisProperties.setConfiguration()
以前所说Configuration.setJdbcTypeForNull()
的确实是正确的。由于spring boot尝试设置configuration
为,MybatisProperties
但发现其成员configuration
为null,因此spring boot将实例化一个新Configuration
变量并将其MybatisProperties
立即分配给它。之后,spring boot会尝试将全部分配mybatis.configuration.*
给的该成员MybatisProperties
。
如果要使用XML配置mybatis,则需要<setting name="jdbcTypeForNull" value="VARCHAR"/>
在element下指定example<settings/>
作为示例。
这肯定会工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句