java.lang.NoSuchMethodException:Good.(java.lang.String, java.lang.String,java.lang.Double)

一开始我以为是Oracle数据库中的字段类型与JAVA类型不一致,结果不是这个问题。

原因分析:普通的JAVA类中,没有对应参数的构造函数,以致于无法对象关系映射。我们需要知道创建一个对象,是需要构造函数的,没有构造函数,那怎么创建对象呢?

import org.apache.ibatis.type.Alias;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
@Alias("good")
public class Good {
    private String goodId;
    private String goodName;
    private Double price;

    public Good(){} //无惨构造函数需要写上,否则下面那个构造函数会报“无法注入Bean”的错误

    public Good(String goodId, String goodName, Double price){ //需要写上这个构造函数,否则会报NoSuchMethodException
        this.goodId = goodId;
        this.goodName = goodName;
        this.price = price;
    }

    public String getGoodId() {
        return goodId;
    }

    public void setGoodId(String goodId) {
        this.goodId = goodId;
    }

    public String getGoodName() {
        return goodName;
    }

    public void setGoodName(String goodName) {
        this.goodName = goodName;
    }
    
    public Double getPrice() {
        return price;
    }

    public void setPrice(Double price) {
        this.price = price;
    }
}

你可能感兴趣的:(Java)