美文网首页
Mybatis无法初始化:org.apache.ibatis.r

Mybatis无法初始化:org.apache.ibatis.r

作者: 月光与雪的爱恋 | 来源:发表于2020-09-18 09:41 被阅读0次

在今天写代码时候发现了这么个mybatis问题:

org.apache.ibatis.reflection.ReflectionException: Error instantiating class

错误信息如下所示

2020-09-18 09:24:50.229 [http-nio-10250-exec-1] ERROR [com.sitech.cmap.comp.wsg.dl.controller.DatumLineController] - nested exception is org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.sitech.cmap.dao.simple.comp.po.OmDatumLineVersionKv with invalid types () or values (). Cause: java.lang.NoSuchMethodException: com.sitech.cmap.dao.simple.comp.po.OmDatumLineVersionKv.<init>()
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.sitech.cmap.dao.simple.comp.po.OmDatumLineVersionKv with invalid types () or values (). Cause: java.lang.NoSuchMethodException: com.sitech.cmap.dao.simple.comp.po.OmDatumLineVersionKv.<init>()
    at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:75) ~[mybatis-spring-1.2.2.jar:1.2.2]
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:371) ~[mybatis-spring-1.2.2.jar:1.2.2]
    at com.sun.proxy.$Proxy131.selectList(Unknown Source) ~[?:?]
    at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:198) ~[mybatis-spring-1.2.2.jar:1.2.2]
    at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:119) ~[mybatis-3.2.8.jar:3.2.8]
    at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:63) ~[mybatis-3.2.8.jar:3.2.8]
    at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52) ~[mybatis-3.2.8.jar:3.2.8]
    at com.sun.proxy.$Proxy153.selectByExample(Unknown Source) ~[?:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_31]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_31]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_31]
    at java.lang.reflect.Method.invoke(Method.java:483) ~[?:1.8.0_31]

显示的是无法初始化对象,
得知mybatis在初始化对象时,需要无参构造进行load属性,检查一下自己的类是否有问题,发现如下:

import javax.persistence.*;

@Builder
@Table(name = "om_datum_line_version_kv")
public class OmDatumLineVersionKv {

    /**
     * 基线版本键id
     */
    @Id
    @Column(name = "dl_v_key_id")
    private String dlVKeyId;

    /**
     * 基线版本键
     */
    @Column(name = "dl_v_key")
    private String dlVKey;

我在这里用了lombok的注解@Builder,那么问题就应该出现在这里了,Ctrl+F12:


类中的成员

从中可以看出缺少了无参构造方法:那么去掉注解@Builder 或者 再增加一个注解@NoArgsConstructor @AllArgsConstructor 就可以了。

无参构造方法生成

相关文章

网友评论

      本文标题:Mybatis无法初始化:org.apache.ibatis.r

      本文链接:https://www.haomeiwen.com/subject/efvdyktx.html