批量插入异常问题 There is no getter for property named ''

来源:互联网 发布:java threadlocal 编辑:程序博客网 时间:2024/06/15 03:49
测试批量插入的时候,遇到个蛋疼的问题,程序抛异常如下
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named '' in 'class com.lscm.news.models.NewsClickInfo'org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:346)com.sun.proxy.$Proxy7.insert(Unknown Source)org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:231)

这个问题蛋疼的地方就是没有告诉你NewsClickInfo实体类中的哪个属性找不到。
首先查看了myBatisConfiguration.xml,applicationContext.xml,spring.xml等几个配置文件,均没发现问题。
然后怀疑是NewsClickInfo实体类中的某几个属性没有get/set方法
查看NewsClickInfo实体类中的属性
import java.util.Date;

/**
 * @author lenovo
 * @date 2015-08-10 05:31:33
 * @version 1.0
 */
 
public class NewsClickInfo {


/**
 * 流水号
 */
    private String id;
    
/**
 * 分类id号
 */
    private String classid;
    
/**
 * 新闻id号
 */
    private String newsid;
    

/**
 * 访问用户的id
 */
    private String appuserid;
    

/**
 * 用户名
 */
    private String mobile;

/**
 * 访问时间
 */
    private Date viewtime;
    
/**
 * 地市编码
 */
    private String city_code;

    public String getId(){
return id;
}

public void setId (String id){
this.id = id;
}


    public String getNewsid(){
return newsid;
}

public void setNewsid (String newsid){
this.newsid = newsid;
}


    public String getAppuserid(){
return appuserid;
}

public void setAppuserid (String appuserid){
this.appuserid = appuserid;
}


    public String getMobile(){
return mobile;
}

public void setMobile (String mobile){
this.mobile = mobile;
}


    public Date getViewtime(){
return viewtime;
}

public void setViewtime (Date viewtime){
this.viewtime = viewtime;
}

public String getClassid() {
return classid;
}

public void setClassid(String classid) {
this.classid = classid;
}

public String getCity_code() {
return city_code;
}

public void setCity_code(String city_code) {
this.city_code = city_code;
}
}
发现所有的属性均有get和set方法。
再看mapper文件中相关的批量插入方法
<insert id="batchInsert" parameterType="java.util.List">   
    insert into t_newsclick(id,classid,newsid,creatorid,appuserid,mobile,viewtime,city_code)   
    values  
    <foreach collection="list" item="item" index="index" separator="," >  
        (#{item.id},#{item.classid},#{item.newsid},#{item.creatorid},#{item.appuserid},#{item.mobile},#{item.viewtime},#{item.city_code})  
    </foreach>  
</insert> 
将字段逐个和NewsClickInfo实体类一个个比对了一下,发现实体类少了一个 creatorid 属性。这样实体类中是7个属性,mapper文件中是8个字段,creatorid对不上号,所以抛了异常。


0 0
原创粉丝点击