SpringBoot问题之org.apache.ibatis.executor.ExecutorException: No constructor found in...的问题

来源:互联网 发布:三观不正的电视剧知乎 编辑:程序博客网 时间:2024/05/18 02:48


报这个问题是因为在实体类中定义了有参构造函数,但是忽略了无参构造函数的定义,所以在执行查询的时候会报如下错误:

Caused by: org.apache.ibatis.executor.ExecutorException: No constructor found in com.ris.event.track.model.EventTrack matching [java.lang.Long, java.lang.String, java.lang.Long, java.lang.Long, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.sql.Timestamp, java.sql.Timestamp, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.String, java.lang.String, java.lang.String, java.sql.Timestamp]


比如创造了一个带有参数的构造方法,那么无参的构造方法必须显式的写出来,否则会编译失败"这句话有点不妥,应该这么理解:每个类至少要有一个构造函数,如果你自己构建了一个带有参数的构造函数而没有再显示的写出无参的构造函数也是可以的,不过当你尝试通过一个无参的构造函数来构建(new)时,此时编译器才会报错,因为找不到这个无参的构造函数。也就是说当一个类你没有给他构造函数,则编译器会自动补上一个无参的,若有的话就不会,你需要显示将此无参的构造函数写出来。
所以在创建某个实体类的时候,应该养成一个好习惯,显示构造一个无参构造函数,这样就会避免后面遇到的奇葩问题了。

阅读全文
0 0