2017-05-04 2 views
0

J'ai une question très simple sur cette documentation Utilisation de l'API de critères pour créer des requêtes: documentationAPI Critères: Utilisation de l'API de critères pour créer la documentation Requêtes

Ici, dans l'expression Méthodes dans la partie interface CriteriaBuilder vous pouvez lire ce qui suit concernant la méthode and dans cette partie: Tableau 35-3 Méthodes composé prédicats dans l'interface CriteriaBuilder et exemple d'utilisation de la méthode:

CriteriaQuery<Pet> cq = cb.createQuery(Pet.class); 
Root<Pet> pet = cq.from(Pet.class); 
cq.where(cb.equal(pet.get(Pet_.name), "Fido") 
    .and(cb.equal(pet.get(Pet_.color), "brown")) 

Mais en réalité, cela ne fonctionne pas car ici après la méthode que vous pourriez where pas appeler .and() ... L'utilisation correcte est:

CriteriaQuery<BookEntity> cq = cb.createQuery(Pet.class); 
Root<Pet> pet = cq.from(Pet.class); 
cq.where(cb.and(cb.equal(pet.get(Pet_.name), "Fido"), 
       cb.equal(pet.get(Pet_.color), "brown"))); 

Alors pourquoi est-ce? Peut-être qu'il y a une différence de version? Ou peut-être que c'est juste une erreur dans la documentation mais dans ce cas, je vais laisser cela pour un bon exemple d'utilisation.

+0

Ce "tutoriel" est faux, et a d'autres erreurs en plus. Utilisez la documentation fournie par l'un des fournisseurs JPA, ou reportez-vous à la spécification JPA –

+0

Merci pour votre réponse Neil! En fait, je dois utiliser cette API dans ma mission. Nous ne pouvions utiliser aucune solution spécifique au fournisseur. Mais merci encore. En fait, connaissez-vous un guide ou un didacticiel ou un document pour ce critère-API qui ne contient aucune erreur et ne donne pas seulement des solutions spécifiques au fournisseur? – F3R1

+0

La spécification JPA et javadocs sont le guide définitif. A part ça, celui-ci http://www.datanucleus.org:15080/products/accessplatform_5_1/jpa/query.html#criteria –

Répondre

1

Le "tutoriel" d'Oracle comporte plusieurs erreurs, à l'exception d'une seule.

Le guide définitif de ce qui est possible avec les critères JPA est la spécification JPA et le javadoc. En dehors de cela, ils utilisent la documentation d'un fournisseur, car ils doivent tous couvrir la manipulation standard (ainsi que leurs propres extensions, en espérant que leurs extensions soient claires). Un tel exemple est this one from DataNucleus JPA.

+0

Merci pour la réponse! – F3R1

+0

Connaissez-vous un tutoriel ou un document pour querydsl? – SpringUser