mybatis查询返回的对象不为null,但是属性值为null

2023-11-04

<select id="selectUnitExerciseInfo" resultMap="simpleResultMap" parameterClass="Query">
        SELECT
        user_id,book_id,listen_id,type,sum(right_num) as right_num,
        sum(exercise_num) as exercise_num
        FROM user_listen_exercise_daily
        where  is_delete = 0 and id = #{id}
        group by listen_id
    </select>

mybatis查询时,查询结果是空,但返回的对象不是null,但是对象内的属性全部是null,导致判断的时候出错。方法返回的是一个对象

UserExerciseDO userExerciseDO = userExerciseDao.selectExerciseInfo(query);
if (userExerciseDO == null) {
    //这个永远不会执行
}else {
    //每次都是走这里
}

    @Override
    public UserExerciseDO selectExerciseInfo(Query query) {
        return (UserExerciseDO) this.queryForObject("UserExerciseDO.selectUnitExerciseInfo", query);
    }

导致的这个问题的原因很多,网上有说是因为使用resultMap导致,经过验证并没有出现这个问题,导致这个问题的原因在于sql的执行结果集的数量问题,当你的sql执行结果集可能出现多条,但实际是空的时。如下面这个语句,当不适用group by时,就会出现查询结果是空,但返回的对象不为null,对象中属性却为null的情况。

<select id="selectUnitExerciseInfo" resultMap="simpleResultMap" parameterClass="Query">
        SELECT
        user_id,book_id,listen_id,type,sum(right_num) as right_num,
        sum(exercise_num) as exercise_num
        FROM user_listen_exercise_daily
        where  is_delete = 0 and id = #{id}
        group by listen_id
    </select>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mybatis查询返回的对象不为null,但是属性值为null 的相关文章

  • 使用 Exec Maven 插件分叉 Java,而不使用“exec”目标

    来自文档 https www mojohaus org exec maven plugin exec exec在单独的进程中执行程序和Java程序 exec java在同一虚拟机中执行 Java 程序 我想 fork 一个 java 程序
  • Java LostFocus 和 InputVerifier,按反向制表符顺序移动

    我有一个 GUI 应用程序 它使用 InputVerifier 在产生焦点之前检查文本字段的内容 这都是很正常的 然而 昨天发现了一个问题 这似乎是一个错误 但我在任何地方都找不到任何提及它的地方 在我将其报告为错误之前 我想我应该问 我在
  • 通过Zuul上传大文件

    我在通过 zuul 上传大文件时遇到问题 我正在使用 apache commons 文件上传 https commons apache org proper commons fileupload https commons apache o
  • 从所有表中选择

    我的数据库中有很多表都具有相同的结构 我想从所有表中进行选择 而不必像这样列出所有表 SELECT name FROM table1 table2 table3 table4 我尝试过 但这不起作用 SELECT name FROM 有没有
  • 未装饰窗户的 Windows Snap 功能?

    有谁知道如何允许未装饰的窗户使用此功能 唯一的选择就是重新实施它 有任何想法吗 谢谢 可停靠可能是唯一的JToolBar http docs oracle com javase tutorial uiswing components too
  • JAXB - 忽略元素

    有什么方法可以忽略 Jaxb 解析中的元素吗 我有一个很大的 XML 文件 如果我可以忽略其中一个大而复杂的元素 那么它的解析速度可能会快很多 如果它根本无法验证元素内容并解析文档的其余部分 即使该元素不正确 那就更好了 例如 这应该只生成
  • ThreeTen 向后移植与 JSR-310 的比较

    由于某些原因 我们现在无法使用 java 8 我们仍然停留在 java 7 上 不过 我想使用新的JSR 310 date time APIs现在 使用官方向后移植 ThreeTen http www threeten org threet
  • Mockito 和 Hamcrest:如何验证 Collection 参数的调用?

    我遇到了 Mockito 和 Hamcrest 的泛型问题 请假设以下界面 public interface Service void perform Collection
  • 如何更改 Swagger-ui URL 前缀?

    我正在使用 Springfox Swagger2 和 Spring boot 1 5 9 我可以通过此链接访问 swagger UI http localhost 8090 swagger ui html http localhost 80
  • 如何使用双重调度来分析图形基元的交集?

    我正在分析图形基元 矩形 直线 圆形等 的交互并计算重叠 相对方向 合并等 这被引用为双重调度的一个主要示例 例如维基百科 http en wikipedia org wiki Double dispatch 自适应碰撞算法通常要求 不同的
  • Android 认为我没有关闭数据库!为什么?

    我有一个 SQLiteDatabase 数据成员 我在 onCreate 中初始化它 并在 onPause onStop 和 onDestroy 中调用 close 它在 onResume 中重新初始化 它似乎运行得很好 但当我查看调试器时
  • 在java程序中使用c++ Dll

    我正在尝试使用System LoadLibrary 使用我用 C 编写的一个简单的 dll UseDllInJava java import com sun jna Library import com sun jna Native imp
  • 如何自定义舍入形式

    我的问题可能看起来很简单 但仍然无法得到有效的东西 我需要自定义 Math round 舍入格式或其他格式以使其工作如下 如果数字是 1 6 他应该四舍五入到 1 如果大于或等于 1 7 他应该四舍五入到 2 0 对于所有其他带有 6 的小
  • 从三点求圆心的算法是什么?

    我在圆的圆周上有三个点 pt A A x A y pt B B x B y pt C C x C y 如何计算圆心 在Processing Java 中实现它 我找到了答案并实施了一个可行的解决方案 pt circleCenter pt A
  • java实现excel价格、收益率函数[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 用于请求带有临时缓存的远程 Observable 的 RxJava 模式

    用例是这样的 我想暂时缓存最新发出的昂贵的Observable响应 但在它过期后 返回到昂贵的源Observable并再次缓存它 等等 一个非常基本的网络缓存场景 但我真的很难让它工作 private Observable
  • 在 Java 中通过 D-Bus MPRIS 访问 Clementine 实例

    我使用 Clementine 作为音乐播放器 它可以通过 D Bus 命令进行控制 在命令行上 使用 qdbus 我可以 Start Stop 暂停播放器 强制它跳过播放列表中的歌曲 检查播放列表的长度 检查播放列表中当前播放的曲目及其元数
  • Android ScrollView,检查当前是否滚动

    有没有办法检查标准 ScrollView 当前是否正在滚动 方向是向上还是向下并不重要 我只需要检查它当前是否正在滚动 ScrollView当前形式不提供用于检测滚动事件的回调 有两种解决方法可用 1 Use a ListView并实施On
  • Selenium 单击在 Internet Explorer 11 上不起作用

    我尝试在 Internet Explorer 上单击 selenium 但它不起作用 我努力了element click moveToElement element click build perform javascript没事了 事实上
  • 为什么我的浮点数大于 1 时在 MYSQL 中存储为 .9999?

    我将进程时间作为 float 4 4 存储在 MySQL 数据库中 start time microtime TRUE things happen in my script end time microtime TRUE process t

随机推荐

  • 初学者使用R语言读取excel/csv/txt的注意事项

    本文首发于 医学和生信笔记 完美观看体验请至公众号查看本文 文章目录 把数据读入R语言 Excel csv txt 其他 写出文件 从R语言另存为其他格式 本文面向R语言初学者 尤其是生物医药领域的初学者 大佬勿喷 在之前的推文中 我们用两
  • java设置断点,在Java中设置断点

    How does setting breakpoints in Java work Is it just based on the source file name and line number Does the class or met
  • 编写自动化软件+python

    前言 本文分为代码篇和实操篇 代码篇以 不高兴就喝水 的代码为原版和其他改版做对比 帮助学习了解 实操部分也分为原版的实操和改版的实操 学前准备 pyautogui库用法 https blog csdn net qingfengxd1 ar
  • Cgroups使用

    Cgroups使用 一 Cgroups介绍 linux内核提供了cgroups控制组 controlgroups 的功能 最初由google的工程师提出 后来被整合进Linux内核 Cgroups也是LXC LinuxContainer容器
  • SQL中group by的用法总结

    一 简介SQL语言 SQL语言 是结构化查询语言的简称 SQL语言是一种数据库查询和程序设计语言 用于存取数据以及查询 更新和管理关系数据库系统 同时也是数据库脚本文件的扩展名 SQL语言 是高级的非过程化编程语言 允许用户在高层数据结构上
  • Linux(CentOS7)安装docker

    CentOS7 安装Docker教程 docker官网安装步骤 1 卸载旧版本 sudo yum remove docker docker client docker client latest docker common docker l
  • css 划对号,css3画个圆圈里的对号

    效果如图 image png 基本思路 1先画一个圆 2画两个位于圆中间的小矩形 3旋转矩形 一个左旋45度 一个右旋45度 4利用absolute进行定位 demo2 width 40px height 40px border radiu
  • 爬虫 — 验证码反爬

    目录 一 超级鹰 二 图片验证模拟登录 1 页面分析 1 1 模拟用户正常登录流程 1 2 识别图片里面的文字 2 代码实现 三 滑块模拟登录 1 页面分析 2 代码实现 通过对比像素获取缺口位置 四 openCV 1 简介 2 代码 3
  • 目标检测实战项目『体验篇』

    本文建议阅读时间 8 min 什么是目标检测 目标检测 Object Detection 的任务是找出图像中所有感兴趣的目标 物体 确定它们的类别和位置 是计算机视觉领域的核心问题之一 由于各类物体有不同的外观 形状和姿态 加上成像时光照
  • 二维多孔介质图像的粒度分布研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 使用流域分割算法对岩石二维二值图像进行粒度
  • C # HTTP支持跨域请求

    修改响应的请求头 具体修改详见代码 private void httpPostRequestHandle while true try 等待请求连接 没有请求则GetContext处于阻塞状态 HttpListenerContext req
  • VS2022下载安装与基本使用(写C语言)

    最近遇到一种问题 就是想要写一写C语言的代码 但是网页编辑器功能不全 GCC需要安装Liunx系统 VS又体量太大过于复杂 用keil又需要连接硬件 所以比较纠结 工作中通常使用的是Keil 但是如果有时不方便使用硬件 怎么办呢 所以就想着
  • vue3无限轮播案例

  • 【参加CUDA线上训练营】CUDA进阶之路 - Chapter 8 - CUDA流和CUDA工具库

    8 1 CUDA Stream 前面的章节只介绍了核函数在GPU内部的执行流程 忽略了CPU与GPU之间的交互过程 可以看出 CPU与GPU之间的交互涉及两个操作 数据传输和核函数执行 CPU将任务添加到不同的队列中 GPU驱动程序则负责执
  • AD原理图突然变灰,无法编辑了,快速恢复方法介绍!

    在使用AD18画原理图的时候 不知道触发了什么功能 导致整个原理图界面变成了灰色 怎么办 不怕 请看下文 下面是正常操作时候的界面 下面是异常界面 咨询同事后 同事表示经常遇到这种情况 他们认为是软件卡死了 关闭再重新打开即可 不过鄙人不这
  • python第六七天作业

    作业1 求第n项的斐波那契数列的值 n gt 1 def fbnq n if n lt 1 return 1 if 1 n or 2 n return 1 return fbnq n 1 fbnq n 2 def main n int in
  • MemCache详细解读

    MemCache是什么 MemCache是一个自由 源码开放 高性能 分布式的分布式内存对象缓存系统 用于动态Web应用以减轻数据库的负载 它通过在内存中缓存数据和对象来减少读取数据库的次数 从而提高了网站访问的速度 MemCaChe是一个
  • printf 和 println 是 Java 中用于输出的两种不同的方法

    以下为ChatGPT输出 printf 和 println 是 Java 中用于输出的两种不同的方法 它们之间有以下几点差异 格式控制 printf 方法允许你使用格式字符串来控制输出的格式 你可以指定变量的类型 字段宽度 精度等 而 pr
  • openwrt查看系统的芯片方案

    拿到一款路由器 想要知道主芯片的方案 可以通过如下方法 方法一 查看cpuinfo 比如 root IceCreamBox cat proc cpuinfo system type Ralink MT7620A ver 2 eco 3 ma
  • mybatis查询返回的对象不为null,但是属性值为null