关于jpa分页查询的问题,谢谢解答

 @Override
    public Page<Auth> getAllAuth(Integer pageNum, Integer pageSize) {

        Sort sort = new Sort(Sort.Direction.ASC, "sort");
        Pageable pageable = PageRequest.of(pageNum, pageSize, sort);
        Specification<Auth> authSpecification = new Specification<Auth>() {
            @Override
            public Predicate toPredicate(Root<Auth> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
                query.select(root.get("authID").get("authName").get("parentDataBase").get("onSqlTableName").get("authAddress").get("remark").get("authClassType"));/

                                /我想限制输出字段,如果不加这条是全部输出。加了这条报错 Illegal attempt to dereference path source [null.authID] of basic type; nested exception is java.lang.IllegalStateException: Illegal attempt to dereference path source [null.authID] of basic type
//另外如果我想在最终输出上增加一个自定义字段,有没有官方的方法可以用?谢谢各位帮忙
                                query.groupBy(root.get("parentAddr"));
                query.where(cb.equal(root.get("authClassType").as(String.class), "1"));
                query.orderBy(cb.desc(root.get("sort").as(Integer.class)));
                return query.getGroupRestriction();
            }
        };

        Page<Auth> page = authRepository.findAll(authSpecification, pageable);
        System.err.println(page);
        return page;

    }
List<PostMessage> postMessageList = postMessagePage.getContent();
    postMessageList.forEach(postMessage -> dtoList.add(transPostToDto(postMessage)));

              private PostMessageDto transPostToDto(PostMessage postMessage){
    PostMessageDto dto = new PostMessageDto();
    BeanUtils.copyProperties(postMessage, dto,"content");

    return dto;
}
    这是我写的类似的

jpa 返回的是实体类, 所有会包含实体类所有的字段,这个是没有办法的.但是你可以在外面另外定义一个Dto类(和实体类差不多),这个是工具类,你可以网上搜一个
这个类的作用.然后在这个类里面定义你需要的字段,把page.getContent返回的实体类的字段赋值给这个dto类,然后返回给dto就可以了.我原来做过,就是这样解决的.
希望可以帮到你!

a 返回的是实体类, 所有会包含实体类所有的字段,这个是没有办法的.但是你可以在外面另外定义一个Dto类(和实体类差不多),这个是工具类