我正在使用规范编写弹簧数据 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);