这个问题也是我昨天遇到的。
看问题描述我还以为是我VO对象(实体类)里面的没有对应的getter方法。一直检查将getter方法。检查半天也没找到原因。
后面去网上找,也没找到好的解决方案(我有看到相关的解决方案,然而觉得那些解决方案不够优雅。就没有去尝试)

问题的原因是什么?确实是实体类没有对应的get方法
在这里插入图片描述
上面这个是我修复了问题的示范。
我开始是 test = “city ==‘dl’”
因为我数据库表的字段叫city,但是我实体类里面的属性名字是cityEn。
如果我写city,属性里面确实没 getCity()方法
然后网上的方案很多是让我把实例类里面的属性名字改成city,和数据库一样。这样确实应该能够解决。但是我这个bean文件是用来接收前端参数的。如果我改了,前端接口也要改。
然后我试了下,将<if test => 里面的city改成cityEn问题解决了

总结:

mybatis动态查询里面,
if test = 里面的那个字段应该和对应实体类的字段名字相同。而不是数据库的字段(就是对应数据库的字段)

因为我们一般数据库字段和实体类的字段相同。导致我误以为那个字段应该是数据库的字段。让我出了问题。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐