今天遇到一个挺奇葩的错误,解决的时间花费了挺长时间的。
完整报错信息如下图所示
报错信息提示,没有响应的构造器匹配。这时我就在想,怎么会没有呢?
Mybatis对象映射是通过无参构造进行映射的,我首先的想法是难道我在响应的pojo类提供了带参构造,忘记添加无参构造了?我仔细检查了一下,发现没有类提供了带参构造。我索性显示的添加了无参构造,可是问题没有解决。按照提示信息,没有响应的构造器匹配,那么我索性就提供响应的带参构造呗,但是问题依然没有解决。日志信息上面显示的sql语句执行都非常的正常且正确,那究竟是什么原因呢?问题肯定是处在了映射上面,最终在接口的方法中找到了错误,原来是方法返回值写成了 void ,所以查询出来的结果无法进行映射。
最后非常感谢犯了这个错误请我帮忙的朋友,让我长了见识,毕竟我从来没有遇到过这类错误,也感谢遇到的每一个BUG,让我现在找 BUG 的能力日益提升。