2017-08-15 2 views
-1

J'écris des données de ressort JPG using la spécification. mais l'IDEA me donne une erreur (ligne rouge):pourquoi ma méthode de criteriaQuery.select est erronée dans les données de ressort jpa

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

Voici mon code. Aidez-moi, s'il vous plaît!

la racine est la sous-classe de sélection. pourquoi mon code est faux?

Je souffre vraiment de ce problème.

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); 

Répondre

0

Doit être une seule racine dans une requête.