首页
学习
活动
专区
工具
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.9K20

    _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)映射文件新增标签 id="findById2" resultType="com.mybatisstudy.pojo.Teacher">

    20340

    第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

    85230

    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.

    90310

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

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

    53310
    领券