关于mybatis的if/choose标签中test多条件判断,出现的Bug修复
问题背景:
框架:Springboot
数据库:Oracle
问题描述:有这样一个属性A:当A的值为N时,去数据库条件查找条件列A值为N或者空的值;当A的值为Y时,去数据库条件查找条件列A值为Y的值;
xml中写法如下:
然后运行抛出如下异常:
然后有点懵了,并没有number类型的变量出现啊。然后去查了一下资料,发现了原因:mybatis是用OGNL表达式来解析的,'N'会被解析成字符,由于java是强类型的,char 和 一个string 会导致不等,所以发现异常。
解决办法如下:外层使用单引号,对于值的修饰使用双引号。
然后重新跑,就没有问题了。