Je suis à la recherche d'utiliser CriteriaBuilder pour une requête insensible à la casse comme décrit ici hibernate jpa criteriabuilder ignore case queries et dans beaucoup d'autres questions et tutoriels sur le web.jpa criteriabuilder supérieur donne l'erreur de compilation
Mon code est:
public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
return builder.equal(builder.upper(root.get("firstName")), "test".toUpperCase());
}
mais je reçois une erreur de compilation:
The method upper(Expression<String>) in the type CriteriaBuilder is not applicable for the arguments (Path<Object>)
La version de JPA mise en veille prolongée J'utilise est:
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Final</version>
Cela dépend-il de la version d'hibernation que j'utilise? Comment mettre une Expression < Chaîne> là au lieu d'un Chemin < Objet>?
Merci pour votre aide
merci! c'était le problème, je m'interrogeais sur Expression vs Path et il me manquait le point qu'il attendait une chaîne au lieu d'un objet –
Cela m'a aidé aussi. Je vous remercie. Btw voici mon petit extrait au cas où cela peut aider quelqu'un d'autre. criteriaQuery.select (cb.greatest (à partir de get (EVENT_TIME_STAMP))); –