_YuLF 2021-08-29 10:54 采纳率: 70%
浏览 115
已结题

JPA findAll Specification接口 查询怎么只查询实体的部分字段、或者怎么排除当前实体指定某些属性不作用于查询

不使用@Query nativeQuery=true 查询、这是占位符

@Override
    public Map<String, Object> queryAll(QueryCriteria criteria, Pageable pageable) {
        Page<User> page = userRepository.findAll((root, criteriaQuery, criteriaBuilder) -> {
      //排除实体的某些属性,不用于查询
})}

  • 写回答

1条回答 默认 最新

  • _YuLF 2021-09-01 09:12
    关注

    看了下
    JPA 最后还是会覆盖 root指定查询的属性,所以这种方式只能查询全部属性

    protected TypedQuery<T> getQuery(Specification<T> spec, Sort sort) {
    Root<T> root = applySpecificationToCriteria(spec, query);
    query.select(root);
    return applyRepositoryMethodMetadata(em.createQuery(query));
    
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月9日
  • 已采纳回答 9月1日
  • 创建了问题 8月29日