Mybatis 和 自定义构造函数 冲突的解决办法

使用Mybatis实现数据库查询时候报错,内容如下

### Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class corp.credit.dialOutTask.bean.DialOutTaskDetail with invalid types () or values (). Cause: java.lang.NoSuchMethodException: corp.credit.dialOutTask.bean.DialOutTaskDetail.<init>()
    at corp.credit.base.fac.DaoFac.executeMapper(DaoFac.java:257)

很多时候报错

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

是由于数据库数据和 Bean 之中的数据不匹配,或者数据类型不匹配或者属性名出现偏差。但这里要说的不是以上问题,实践中还有一种情况也出现了上述报错,即,Bean 文件中自己定义了一个构造函数,使用 Mybatis 进行数据查询时,出现了问题。

为解决上述问题,方法如下:

public class DialOutTaskDetail {

    String dialOutTaskId; // 外呼任务 Id
    String custName; // 用户名
    String custId; // 用户Id
    String agentName; // 坐席姓名
    String agentId; // 坐席Id
    String taskDesp; // 任务描述
    String lastDialDate; // 最近拨打时间
    String dialState; // 外呼状态
    String isConnect;// 是否接通
    String callBackState; // 回访状态
    String dialTime; // 拨打次数


    String custEcif; // 用户ECIFID
    String custMobile; // 用户MobileNum
    String dialRes; // 拨打结果


    public DialOutTaskDetail(String dialOutTaskId, String custName,  String custId,  String agentName,  String agentId,
        String taskDesp, String lastDialDate,String dialState, String isConnect,String callBackState, String dialTime,
        String custEcif, String custMobile,String dialRes) {
        this.dialOutTaskId = dialOutTaskId;
        this.custName = custName;
        this.custId = custId;
        this.agentId = agentId;
        this.agentName = agentName;
        this.taskDesp = taskDesp;
        this.lastDialDate = lastDialDate;
        this.dialState = dialState;
        this.isConnect = isConnect;
        this.callBackState = callBackState;
        this.dialTime = dialTime;
        this.custEcif = custEcif;
        this.custMobile = custMobile;
        this.dialRes = dialRes;
    }

    public DialOutTaskDetail() {
    }

    public String getDialOutTaskId() {
        return dialOutTaskId;
    }

    public void setDialOutTaskId(String dialOutTaskId) {
        this.dialOutTaskId = dialOutTaskId;
    }

    public String getCustName() {
        return custName;
    }

    public void setCustName(String custName) {
        this.custName = custName;
    }

    public String getCustId() {
        return custId;
    }

    public void setCustId(String custId) {
        this.custId = custId;
    }

    public String getAgentName() {
        return agentName;
    }

    public void setAgentName(String agentName) {
        this.agentName = agentName;
    }

    public String getAgentId() {
        return agentId;
    }

    public void setAgentId(String agentId) {
        this.agentId = agentId;
    }

    public String getTaskDesp() {
        return taskDesp;
    }

    public void setTaskDesp(String taskDesp) {
        this.taskDesp = taskDesp;
    }

    public String getLastDialDate() {
        return lastDialDate;
    }

    public void setLastDialDate(String lastDialDate) {
        this.lastDialDate = lastDialDate;
    }

    public String getDialState() {
        return dialState;
    }

    public void setDialState(String dialState) {
        this.dialState = dialState;
    }

    public String getIsConnect() {
        return isConnect;
    }

    public void setIsConnect(String isConnect) {
        this.isConnect = isConnect;
    }

    public String getCallBackState() {
        return callBackState;
    }

    public void setCallBackState(String callBackState) {
        this.callBackState = callBackState;
    }

    public String getDialTime() {
        return dialTime;
    }

    public void setDialTime(String dialTime) {
        this.dialTime = dialTime;
    }

    public String getCustEcif() {
        return custEcif;
    }

    public void setCustEcif(String custEcif) {
        this.custEcif = custEcif;
    }

    public String getCustMobile() {
        return custMobile;
    }

    public void setCustMobile(String custMobile) {
        this.custMobile = custMobile;
    }

}
再回顾一下之前的报错的Bean:

public class DialOutTaskDetail {

    String dialOutTaskId; // 外呼任务 Id
    String custName; // 用户名
    String custId; // 用户Id
    String agentName; // 坐席姓名
    String agentId; // 坐席Id
    String taskDesp; // 任务描述
    String lastDialDate; // 最近拨打时间
    String dialState; // 外呼状态
    String isConnect;// 是否接通
    String callBackState; // 回访状态
    String dialTime; // 拨打次数


    String custEcif; // 用户ECIFID
    String custMobile; // 用户MobileNum
    String dialRes; // 拨打结果


    public DialOutTaskDetail(String dialOutTaskId, String custName,  String custId,  String agentName,  String agentId,
        String taskDesp, String lastDialDate,String dialState, String isConnect,String callBackState, String dialTime,
        String custEcif, String custMobile,String dialRes) {
        this.dialOutTaskId = dialOutTaskId;
        this.custName = custName;
        this.custId = custId;
        this.agentId = agentId;
        this.agentName = agentName;
        this.taskDesp = taskDesp;
        this.lastDialDate = lastDialDate;
        this.dialState = dialState;
        this.isConnect = isConnect;
        this.callBackState = callBackState;
        this.dialTime = dialTime;
        this.custEcif = custEcif;
        this.custMobile = custMobile;
        this.dialRes = dialRes;
    }

    public String getDialOutTaskId() {
        return dialOutTaskId;
    }

    public void setDialOutTaskId(String dialOutTaskId) {
        this.dialOutTaskId = dialOutTaskId;
    }

    public String getCustName() {
        return custName;
    }

    public void setCustName(String custName) {
        this.custName = custName;
    }

    public String getCustId() {
        return custId;
    }

    public void setCustId(String custId) {
        this.custId = custId;
    }

    public String getAgentName() {
        return agentName;
    }

    public void setAgentName(String agentName) {
        this.agentName = agentName;
    }

    public String getAgentId() {
        return agentId;
    }

    public void setAgentId(String agentId) {
        this.agentId = agentId;
    }

    public String getTaskDesp() {
        return taskDesp;
    }

    public void setTaskDesp(String taskDesp) {
        this.taskDesp = taskDesp;
    }

    public String getLastDialDate() {
        return lastDialDate;
    }

    public void setLastDialDate(String lastDialDate) {
        this.lastDialDate = lastDialDate;
    }

    public String getDialState() {
        return dialState;
    }

    public void setDialState(String dialState) {
        this.dialState = dialState;
    }

    public String getIsConnect() {
        return isConnect;
    }

    public void setIsConnect(String isConnect) {
        this.isConnect = isConnect;
    }

    public String getCallBackState() {
        return callBackState;
    }

    public void setCallBackState(String callBackState) {
        this.callBackState = callBackState;
    }

    public String getDialTime() {
        return dialTime;
    }

    public void setDialTime(String dialTime) {
        this.dialTime = dialTime;
    }

    public String getCustEcif() {
        return custEcif;
    }

    public void setCustEcif(String custEcif) {
        this.custEcif = custEcif;
    }

    public String getCustMobile() {
        return custMobile;
    }

    public void setCustMobile(String custMobile) {
        this.custMobile = custMobile;
    }
}
少就少在缺了一个默认的构造函数,添加一个默认的构造函数即可解决上述问题。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值