lambda调用方式无法正确映射字段

Author: zhoujialeCreated Apr 20, 2025Updated Apr 22, 2025

使用版本 java 17 springboot 3.2.3

xml
  <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper-spring-boot-starter</artifactId>
      <version>2.1.0</version>
  </dependency>
  <dependency>
      <groupId>org.mybatis.dynamic-sql</groupId>
      <artifactId>mybatis-dynamic-sql</artifactId>
      <version>1.5.0</version>
  </dependency>

执行下面两种方式的代码

//lambda
Page<SystemUserVO> page = PageHelper.startPage(systemUserQuery.getPageNum(), systemUserQuery.getPageSize())
                .doSelectPage(() -> systemUserDao.querySystemUserVOList(systemUserQuery));
//非lambda
Page<SystemUserVO> page = PageHelper.startPage(systemUserQuery.getPageNum(), systemUserQuery.getPageSize());
List<SystemUserVO> systemUserVOS = systemUserDao.querySystemUserVOList(systemUserQuery);

dao层方法已经确认将sql中查询的对象转换成java对象返回了,但是使用lambda方式,会将返回的对象转成map而且会使用下划线命名。但是使用非lambda方式就没有这个问题

Source: pagehelper-org/Mybatis-PageHelper