【Java异常】使用通用Mapper ,报There is no getter for property named ‘distinct‘ in ‘class 错

本文目录

一、报错信息

二、出错原因

三、解决方案

四、distinct属性


一、报错信息

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属性

完结!

原文地址:https://www.cnblogs.com/no8g/p/13415460.html