通用Mapper获取数据表中id为0解决方法。千万别瞎改int为integer了

news2025/8/3 8:51:15

项目场景:

最近准备自己写一个框架。由于是舍弃了成熟框架,所以在集成一些组件的时候,发现了一些之前没有注意过的问题。
这次是集成通用mapper时出现的一个问题。。。


问题描述

使用通用Mapper的selectAll()方法后,得到的id值都为0:
代码如下:

实体类User.java:

package org.example.module.test.vo;

import lombok.Data;
import javax.persistence.Table;

@Data
@Table(name = "user")
public class User {
    private int id;
    private String username;
    private String password;
}

Controller类UserController.java:

@Api(tags = "User模块")
@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @ApiOperation(value = "获取所有用户")
    @GetMapping("/getAll")
    public Result<?> getAllUser(){
        List<User> userList = userService.getAllUser();
        return Result.ok(userList);
    }
}

Service类UserService.java:

@Service
public class UserService {

    @Autowired
    public UserMapper userDao;

    public List<User> getAllUser() {
        System.out.println("查询用户...all");
        List<User> userList= userDao.selectAll();
        return userList;
    }
}

Mapper类UserMapper.java:

@Component
public interface UserMapper extends Mapper<User> {
}

在测试selectAll()方法时,发现得到所有User类中id值都为0:
在这里插入图片描述
再看一下数据库里的值:
在这里插入图片描述
并且日志里的语句中没有id字段:
在这里插入图片描述


原因分析:

记得之前项目中有些把id值的类型设置为Integer类型,修改后没有问题。但总感觉这是换了条路,在逃避真正的问题。所以选择硬刚。
在网上搜了搜解决方案,但大部分还都是把int类型改为Integer。。。。
在这里可以点进方法里跟进一下:
1、点进selectAll()方法后进入这里
在这里插入图片描述

2、这里有个注解@SelectProvider,点进去可以找到对应的方法
在这里插入图片描述

3、在这个方法里可以看到SqlHelper.selectAllColumns(entityClass)。可以给这个方法打个断点。往后跟到下面图这里,可以看到,从User类中分析出来的成员中没有是没有id的。
在这里插入图片描述


解决方案:

给int id加上@Column注解。
这里解释一下@Column:用来标识实体类中属性与数据表中字段的对应关系。

???????????
但这里还有个疑问,在跟断点的时候,没有找到分析实体类的地方,不知道实体类在被分析时经历了什么样的过程。希望如果有大神,可以指教一下。谢谢🙏
???????????

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/15914.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java【抽象类和接口】是什么?

文章目录前言一、抽象类1.什么是抽象类2.抽象类的特征3.抽象类的作用二、接口1.什么是接口2.语法规范3.接口的使用4.接口的特征5.实现多个接口6.接口间的继承总结前言 前篇文章分享过了 面向对象语言的三大特征&#xff1a;封装&#xff0c;继承&#xff0c;多态 本篇呢将继续…

LCR表测电容怎么实现连续测试?ATECLOUD云测试平台帮您解决

河南某企业在生产测试中需要用到LCR表测试电容的容量和损耗&#xff0c;目前在使用是德科技E4980a LCR 测试数据时&#xff0c;发现不能连续测试&#xff0c;不能自动记录数据。通过和纳米软件Namisoft沟通&#xff0c;希望我们可以实现连续测试并将测试数据自动记录&#xff0…

steam搬砖项目,当下最稳定长久的

我为什么这么推荐普通人来做CSGO搬砖&#xff0c;最主要的原因就两点&#xff0c;一是平台流量大知道的人少&#xff0c;二就是不需要什么成本&#xff01; CSGO是基于steam衍生出来的&#xff0c;steam的流量池有多大&#xff0c;想必大家都心知肚明&#xff0c; Steam平台是…

实验(一):开发环境的安装及基本操作

一、实验目的与任务 实验目的&#xff1a; 1. 掌握KeilC集成开发环境的安装及基本操作&#xff1b; 2. 掌握Protues仿真软件的安装及基本操作。 任务&#xff1a; 1.完成KeilC集成开发环境的安装&#xff0c;建立工程&#xff1b; 2. 完成Protues仿真软件的安装&#xff0c;建立…

[附源码]java毕业设计票务销售网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Gartner发布首份中国RPA魔力象限报告,弘玑Cyclone被重点推荐

11月17日&#xff0c;国际权威研究机构Gartner重磅发布首份中国RPA魔力象限报告&#xff1a;《China Context: Magic Quadrant for Robotic Process Automation》。 毫无悬念&#xff0c;在2022全球RPA魔力象限报告&#xff08;Gartner RPA MQ&#xff09;中表现优异的弘玑Cyc…

魔百和CM311-1A_YST、(YM)_安卓9_S905L3A_默认开启ADB_纯净精简语音_完美线刷包

魔百和CM311-1A_YST、(YM)_安卓9_S905L3A_默认开启ADB_纯净精简语音_完美线刷包 固件特点&#xff1a; 1、修改dns&#xff0c;三网通用&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、无开机广告&#xff0c;无系统更新&#xff0c;不在被强制升…

什么是云原生的应用?

云原生应用的三个核心概念 链接&#xff1a;https://pan.baidu.com/s/10ocbDCGsdS3i7hEzvUlatA?pwdm9nr 提取码&#xff1a;m9nr –来自百度网盘超级会员V5的分享 脑图大家可以下载使用并补充 微服务 什么是单体应用&#xff1f; 传统的单体应用架构都是三层模式&#xff1…

分治策略与递归

目录分治策略分治概念递归概念分治策略的特征分治法步骤举例阶乘斐波那契数列打印数组数组中查找元素分治策略 分治概念 任何可以用计算机求解的问题所需要的时间都与其规模有关。问题规模越小&#xff0c;所解题所需要的时间就越小&#xff0c;从而也较容易处理。例如&#…

11.9 至 11.17 四道典型题记录: Counter 弹出 | map函数 | 子集求取 | 有序字符桶分装

11.9 至 11.17 四道典型题记录&#xff1a; Counter 弹出 | map函数 | 子集求取 | 有序字符桶分装 昨天休息的时候一直在想应该学习哪种语言&#xff0c;我想这也是好多人发愁无法下手的原因之一&#xff0c;今年找工作的时候发现更多的研究岗位需要的是 C 语言 或 C 语言&…

RocketMQ的事务消息和改造

什么是 rmq分布式事务消息&#xff1f; Apache RocketMQ在4.3.0版中已经支持分布式事务消息&#xff0c;这里RocketMQ采用了2PC的思想来实现了提交事务消息&#xff0c;同时增加一个补偿逻辑来处理二阶段超时或者失败的消息&#xff0c;如下图所示。 事务消息解决什么问题&…

Java学习笔记 --- 多线程

一、线程相关概念 程序 程序是为完成特定任务&#xff0c;用某种语言编写的一组指令的集合。简单的说就是我们写的代码 进程 1、进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存空间。当我们使用迅雷&…

程序控制结构

程序控制结构程序流程控制介绍顺序控制分支控制if-else单分支案例&#xff1a;编写一个程序&#xff0c;可以输入人的年龄&#xff0c;如果该同志的年龄大于等于 18 岁, 则输出 "你年龄大于 18,要对自己的行为负责,送入监狱"。双分支案例&#xff1a;编写一个程序&am…

关于Python函数的几点说明

关于Python函数的几点说明 本文介绍Python函数返回值、调用函数加括号和不加括号有什么区别、冒号后面省略号&#xff08;...&#xff09;和 pass等说明。 一、为什么函数意外返回“None” 初学者可能遇到这种情况&#xff0c;定义的函数意外返回“None”&#xff0c;例如&a…

Qt error: fatal error: Killed signal terminated program cc1plus

Qt error: fatal error: Killed signal terminated program cc1plus 文章目录Qt error: fatal error: Killed signal terminated program cc1plus摘要1 出现问题原因2 解决方法虚拟机物理机增加SWAP交换空间关键字&#xff1a; qt、 fatal、 error、 cc1plus、 Killed signal …

K8S实战 - 如何在kubernetes中安装软件

如何在kubernetes中安装软件 1、编写脚本安装 通过编写yaml文件&#xff0c;执行kubectl apply -f 可以安装软件 编写yaml的时候注意事项&#xff1a; pod的类型&#xff08;deployment、statefulset等&#xff09;端口的定义&#xff08;service&#xff09;配置文件的定义…

艾美捷Cholesterol胆固醇功效和参数说明

胆固醇又称胆甾醇。一种环戊烷多氢菲的衍生物。其溶解性与脂肪类似&#xff0c;不溶于水&#xff0c;易溶于乙-醚、氯-仿等溶剂。胆固醇是动物组织细胞所不可缺少的重要物质&#xff0c;它不仅参与形成细胞膜&#xff0c;而且是合成胆汁酸&#xff0c;维生素D以及甾体激素的原料…

[附源码]计算机毕业设计JAVA公益劳动招募管理系统

[附源码]计算机毕业设计JAVA公益劳动招募管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM my…

漏洞深度分析|Apache MINA SSHD反序列化漏洞

项目介绍 Apache MINA SSHD 是一个 100% 纯 java 库&#xff0c;支持客户端和服务器端的 SSH 协议。它的目的不是要替代 Unix 操作系统中的 SSH 客户端或 SSH 服务器&#xff0c;而是为需要 SSH 支持的基于 Java 的应用程序提供支持。 该库可以利用多个 I/O 后端&#xff1a; …

最小二乘法在ISP CCM标定中的简介

一、基础知识 假设我们有16幅名人脸部灰度图像&#xff0c;我们是否可以找到16幅脸部图像的线性组合&#xff0c;使得其线性组合最接近于目标脸部图像呢&#xff1f; 名人库我们知道灰度图像可以用矩阵表示。假设有如下灰度图。 我们可以用矩阵表示为&#xff1a; 我们也可以用…