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

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日

悬赏问题

  • ¥50 汇编语言除法溢出问题
  • ¥65 C++实现删除N个数据列表共有的元素
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗