本文目录
一、报错信息
Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'distinct' in 'class com.uiotsoft.subsite.mybatis.model.TCmsSite'
二、出错原因
selectByExample()方法传递的参数错误,应该传example类型,而不是实体类。(开源中国开发者们提供)
最近在项目中使用通用Mapper的时候,有一个方法mapper.selectByExample() ,我当时传入的参数类型为T (泛型),就报了这个错。具体如代码所示:selectByExample()方法里面传递的是具体的实体类:
public TCmsSite findByDomain(String domain) {
TCmsSite site = new TCmsSite();
site.setDomain(domain);
List<TCmsSite> tCmsSites = siteMapper.selectByExample(site);
if (tCmsSites.size() > 0){
site = tCmsSites.get(0);
}
return site;
}
三、解决方案
修改selectByExample()方法传递的参数类型,传入Example类型参数,对于我的项目而言,具体的代码修改方法如下:
public TCmsSite findByDomain(String domain) {
TCmsSite site = new TCmsSite();
site.setDomain(domain);
Example example = new Example(site.getClass());
List<TCmsSite> tCmsSites = siteMapper.selectByExample(example);
if (tCmsSites.size() > 0){
site = tCmsSites.get(0);
}
return site;
}
四、distinct属性
完结!