首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么找不到id为findById的响应,但findAll返回具有此id的对象

相关·内容

Mybatis使用generatedKey在插入数据时返回自增id始终1,自增id实际返回到原对象当中问题排查

今天在使用数据库时候,遇到一个场景,即在插入数据完成后需要返回此数据对应自增主键id,但是在使用Mybatis中generatedKey且确认各项配置均正确无误情况下,每次插入成功后,返回都是...1,而不是最新自增Id。...int表示是插入操作受影响行数,而不是指自增长id,那么返回自增id到底去哪里了呢?...通过下面的Debugg我们知道自增id返回到testGenKey对象中去了。 举例示范配置 数据库示例表  generator配置文件 <?...null : sex.trim(); } } 测试及Debugg 编写测试方法测试插入 插入成功后观察对应变量对应值 总结:调用Insert后插入操作之后,所得到自增长Id被赋值到原对象当中

1.7K10
  • BeanUtils如何优雅拷贝List

    ,仅仅需要转换一下vo也需要new Vo() public Vo findById(Integer id) { Vo vo = new Vo(); Po po = dao.findById...(id); copyProperties(po, vo); return vo; } 这种拷贝方式是没有返回,现在jdk8支持stream()操作之后(参考:Jdk8 Stream),支持不是很友好...Vo findById(Integer id) { return BeanConvertUtils.converTo(dao.findById(id), Vo::new, (s, t) -> t.setName...但是有两点要提醒 此方法依旧不能解决深层次深拷贝问题,详细可以google一下BeanUtils深拷贝问题 如果source或者targetSupplier只要有一个null,本工具类不像BeanUtils...一样抛出异常,而是返回null,因为笔者认为调用方如果把null进行准换,那就是想转换为null,不为空应该由调用方自己负责 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    3.8K20

    SSM第六讲 MyBatis高级特性

    用户信息是再用到时候再查询. -- 实现过程: -- 1) 查询账户 SELECT * FROM account -- 3) 使用用户对象数据时候,查询用户 SELECT * FROM USER WHERE...因为 cacheEnabled 取值默认就为 true,所以这一步可以省略不配置。 true代表开启二级缓存; false 代表不开启二级缓存。 官网介绍: ?...#{id} 将 UserMapper.xml 映射文件中标签中设置 useCache=”true”代表当前这个 statement 要使用二级缓存,如果不使用二级缓存可以设置...(41); //从二级缓存查询(反序列化)直接返回(此时一级缓存还是空) User user3 = mapper2.findById(41); //查询二级缓存(反序列化.../反序列化来保证对象存取,所以所有的entity对象都应该实现serializable接口 3.6 mybatis自身缓存弊 A.

    86510

    _Mybatis映射文件 — 常用标签及特殊字符处理

    (); teachers.forEach(System.out::println); }}(5)运行结果        哎呀,这是为什么呢,查询有三条记录后,但是我们集合对象却是空..., 原来是因为MyBatis可以将数据库结果集封装到对象中,是因为结果集列名和对象属性名相同当POJO属性名和数据库列名不一致时,MyBatis无法自动完成映射关系。        ...= teacherMapper.findById(id); System.out.println(teacher); }(4)测试结果OK,本次测试也是非常成功  三、Mybatis...我们可以使用符号实体来表示: 符号实体>&&''"" (1)持久层新增查询比输入ID集合// 查询比输入Id要大记录 List findById2(int id);(2)映射文件新增标签

    17640

    第11章—使用对象关系映射持久化数据—SpringBoot+SpringData+Jpa进行查询修改数据库

    JPA宗旨是POJO提供持久化标准规范,由此可见,经过这几年实践探索,能够脱离容器独立运行,方便开发和测试理念已经深入人心了。...总的来说,JPA包括以下3方面的技术: ORM映射元数据 JPA支持XML和JDK5.0注解两种元数据形式,元数据描述对象和表之间映射关系,框架据此将实体对象持久化到数据库表中; API 用来操作实体对象...查询语言 这是持久化操作中很重要一个方面,通过面向对象而非面向数据库查询语言查询数据,避免程序SQL语句紧密耦合。...方法上加上这两个注解 // @Id // @GeneratedValue // 不然会报错找不到 @Id @GeneratedValue public...() { return studentDao.findAll(); } @Override public Student findById(Integer id

    84930

    Mybatis映射文件 — 常用标签及特殊字符处理

    (); teachers.forEach(System.out::println); } } (5)运行结果         哎呀,这是为什么呢,查询有三条记录后,但是我们集合对象却是空..., 原来是因为 MyBatis可以将数据库结果集封装到对象中,是因为结果集列名和对象属性名相同 当POJO属性名和数据库列名不一致时,MyBatis无法自动完成映射关系。         ...(1)持久层新增根据Id查询方法 // 根据ID查询用户 Teacher findById(int id); (2)映射文件新增相应标签 <sql id="selectAllField"...我们可以使用符号实体来表示: 符号实体>&&''"" (1)持久层新增查询比输入ID集合 // 查询比输入Id要大记录 List findById2(int id); (2)映射文件新增标签 <select id="findById2" resultType="com.mybatisstudy.pojo.Teacher

    1.1K20

    一个案例演示 Spring Security 中粒度超细权限控制!

    (筛选出当前用户具有 READ 权限数据),returnObject 就表示方法返回值。...有一个和它对应注解 @PreFilter,这个注解允许方法调用,必须在进入方法之前对参数进行过滤。...配置完成后,执行该方法,执行完成后,数据库中就会有相应记录了。 接下来,使用 hr 这个用户就可以读取到 id 1 记录了。...首先我们调用了 findAll,这个方法会查询出所有的数据,然后返回结果会被自动过滤,只剩下 hr 用户具有读取权限数据,即 id 1 数据;另一个调用就是 findById 方法,传入参数...添加成功后,manager 这个用户没有读 id 99 数据权限,可以参考前面案例自行添加。

    1.1K20

    MyBatis注解(多表)

    1、多表关系映射说明 1.1、一对一 @One 注解(一对一) 代替了标签,是多表查询关键,在注解中用来指定子查询返回单一对象。...,property=”",one=@One(select="")) 1.2、一对多 @Many 注解(多对一) 代替了标签,是是多表查询关键,在注解中用来指定子查询返回对象集合。...需要指定映射 Java 实体类属性,属性 javaType(一般 ArrayList)但是注解中可以不定义; 2、一对一 2.1、需求分析 查询学生信息,加载该学生班级信息 2.2、编写Classes.java...= "com.tianyi.dao.IClassesDao.findById",fetchType = FetchType.EAGER)) }) List findAll1...= "cname") }) Classes findById(int cid); } 2.6、修改MbStudentsTest.java测试类 @Test public void findAll1

    52210
    领券