目录

There is no getter for property named解决方案

问题

这个问题也是我昨天遇到的。

看问题描述我还以为是我VO对象(实体类)里面的没有对应的getter方法。一直检查将getter方法。检查半天也没找到原因。

后面去网上找,也没找到好的解决方案(我有看到相关的解决方案,然而觉得那些解决方案不够优雅。就没有去尝试)

问题的原因是什么?确实是实体类没有对应的get方法

解决

./1.png

上面这个是我修复了问题的示范。

我开始是 test = “city ==‘dl’”

因为我数据库表的字段叫city,但是我实体类里面的属性名字是cityEn。

如果我写city,属性里面确实没 getCity()方法

然后网上的方案很多是让我把实例类里面的属性名字改成city,和数据库一样。这样确实应该能够解决。但是我这个bean文件是用来接收前端参数的。如果我改了,前端接口也要改。

然后我试了下,将<if test => 里面的city改成cityEn问题解决了

总结

mybatis动态查询里面, if test = 里面的那个字段应该和对应实体类的字段名字相同。而不是数据库的字段(就是对应数据库的字段)。 因为我们一般数据库字段和实体类的字段相同。导致我误以为那个字段应该是数据库的字段。让我出了问题。