-1

我正在使用规范编写弹簧数据 jpa。但是IDEA给了我一个错误(红线):

'select(javax.persistence.criteria.Selection<? extends capture<?>>)' in 'javax.persistence.criteria.CriteriaQuery' cannot be applied to '(javax.persistence.criteria.Root<cn.lvxg.po.ClassRoom>)'

这是我的代码。请帮我!

Root 是 Selection 的子类。为什么我的代码是错误的?

我真的很受这个问题的困扰。

    Specification<Student> specification = new Specification<Student>() {
        public Predicate toPredicate(Root<Student> root,//
                                     CriteriaQuery<?> criteriaQuery,
                                     CriteriaBuilder criteriaBuilder) {
            Root<ClassRoom> classRoomRoot = criteriaQuery.from(ClassRoom.class);
            Root<Student> studentRoot = criteriaQuery.from(Student.class);
            criteriaQuery.select(classRoomRoot)
                    .distinct(true)
                    .where(criteriaBuilder.equal(studentRoot,classRoomRoot.get("id")));
            return criteriaQuery.getRestriction();;

        }

    };
    Pageable pageable = new PageRequest(0, 5);
    Page<Student> studentsPage = jpaSpecificationRepository.findAll(specification, pageable);
4

1 回答 1

0

查询中应该只有一个根。

于 2017-08-15T11:54:41.543 回答