通过LambdaQueryWrapper配置实现查询指定的字段值

Ashe / 2024-10-13 / 原文

如果是自己写sql语句,可以很自由的实现查询哪些字段值,但是在使用 MybatisPlus 提供的CRUD方法的时候我们该如何实现这一效果呢?

可以通过 LambdaQueryWrapper 和 QueryWrapper 的 select 方法来做到这一点

    public IPage<Customer> page(int current, int size) {
        log.info("current={},size={}", current, size);
        LambdaQueryWrapper<Customer> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        // 指定要查询的字段
        lambdaQueryWrapper.select(Customer::getCustomerName, Customer::getAddress, Customer::getCreatedAt, Customer::getUpdatedAt);
        return customerRepository.page(new Page<>(current, size), lambdaQueryWrapper);
    }

    @Getter
    @Setter
    @TableName("customers")
    public class Customer {

        @TableId
        private Long customerId;

        private String customerName;

        private String address;

        private LocalDateTime createdAt;

        private LocalDateTime updatedAt;

    }

 

以上代码可知,我忽略了主键这一敏感字段值的查询,以下是查询结果,符合预期(敏感字段值未被查询)