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

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

一、报错信息

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;
}

三、解决方案

目前有两种解决方案:两种方案其实大同小异,写在这里只是想提供更多的思路,对于每个项目,可选择具体的方案。

方案1:无条件的

修改selectByExample()方法传递的参数类型,传入Example类型参数,对于我的项目而言,具体的代码修改方法如下:

public TCmsSite findByDomain(String domain) {
    TCmsSite site = new TCmsSite();
    Example example = new Example(TCmsSite.class);
    List<TCmsSite> tCmsSites = siteMapper.selectByExample(example);
    if (tCmsSites.size() > 0){
        site = tCmsSites.get(0);
    }
    return site;
}

方案2:添加条件的

public TCmsSite findByDomain(String domain) {
    TCmsSite site = new TCmsSite();
    Example example = new Example(TCmsSite.class);
    Example.Criteria criteria = example.createCriteria();
    criteria.andEqualTo("domain", domain);
    List<TCmsSite> tCmsSites = siteMapper.selectByExample(example);
    if (tCmsSites.size() > 0){
        site = tCmsSites.get(0);
    }
    return site;
}

四、distinct属性

 

 

以上是目前想到的解决方案,后续有好的方案,再更新。欢迎大家提出新的思路哦~~~

 

完结!


目录
打赏
0
0
0
0
17
分享
相关文章
|
4月前
|
在 Java 中捕获和处理自定义异常的代码示例
本文提供了一个 Java 代码示例,展示了如何捕获和处理自定义异常。通过创建自定义异常类并使用 try-catch 语句,可以更灵活地处理程序中的错误情况。
121 1
如何避免 Java 中的 TimeoutException 异常
在Java中,`TimeoutException`通常发生在执行操作超过预设时间时。要避免此异常,可以优化代码逻辑,减少不必要的等待;合理设置超时时间,确保其足够完成正常操作;使用异步处理或线程池管理任务,提高程序响应性。
213 13
|
4月前
|
在 Java 中,如何自定义`NumberFormatException`异常
在Java中,自定义`NumberFormatException`异常可以通过继承`IllegalArgumentException`类并重写其构造方法来实现。自定义异常类可以添加额外的错误信息或行为,以便更精确地处理特定的数字格式转换错误。
66 1
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
75 14
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
62 5
|
3月前
|
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
843 8
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
【Azure Function】部署Java Function失败:报错deploy [ERROR] Status code 401和警告 'China North 3' may not be a valid region
1:deploy [ERROR] Status code 401, (empty body). 2: China North 3 may not be a valid region,please refer to https://aka.ms/maven_function_configuration#supported-regions for values. 3:  <azure.functions.maven.plugin.version>1.36.0</azure.functions.maven.plugin.version>
44 11
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
在Java中,使用mybatis-plus更新实体类对象到mysql,其中一个字段对应数据库中json数据类型,更新时报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
407 4
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
怎样避免 Java 中的 NoSuchFieldError 异常
在Java中避免NoSuchFieldError异常的关键在于确保类路径下没有不同版本的类文件冲突,避免反射时使用不存在的字段,以及确保所有依赖库版本兼容。编译和运行时使用的类版本应保持一致。
133 8
如何避免在 Java 中出现 NoSuchElementException 异常
在Java中,`NoSuchElementException`通常发生在使用迭代器、枚举或流等遍历集合时,尝试访问不存在的元素。为了避免该异常,可以在访问前检查是否有下一个元素(如使用`hasNext()`方法),或者使用`Optional`类处理可能为空的情况。正确管理集合边界和条件判断是关键。
139 6

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等