Je suis en train de créer des recherches avec différents filtres. Comme j'utilise JpaRepository pour faire des requêtes simples, j'ai trouvé le JpaSpecificationExecutor pour faire des requêtes dynamiques avec les Criterias.JpaSpecificationExecutor: requêtes complexes avec spécifications
Mon problème est que je dois créer une requête complexe avec un groupe by et un count(). C'est bon pour le groupe mais je ne trouve pas comment je peux contourner la partie "select" pour mettre une instruction "count".
Quelqu'un peut-il m'aider s'il vous plaît?
J'utilise le printemps 3.1.2 et les données JPA-printemps 1.0.3 Voici mon code:
return new Specification<Article>() {
@Override
public Predicate toPredicate(final Root<Article> root,
final CriteriaQuery<?> query, final CriteriaBuilder builder) {
//count ???
query.groupBy(root.get(Article_.id));
Predicate p = builder.and(builder.like(root.<String> get(Article_.title), "%" + title + "%"));
return p;
}
}
Merci! Si vous regardez le org.springframework.data.jpa.repository.support.SimpleJpaRepository
de Spring Data il y a une méthode appelée getCountQuery(..)
Merci pour votre aide. J'ai choisi de faire deux demandes. Un pour obtenir tous mes identifiants avec la spécification. La seconde (le compte) avec une requête simple qui correspond à mes identifiants. – user1838850