Salut!
J'ai du mal à traduire une requête SQL en critéria.
Voici le code de la requête:
Code:SELECT COUNT(*) FROM Utilisateur u WHERE u.flagsup=1
Version imprimable
Salut!
J'ai du mal à traduire une requête SQL en critéria.
Voici le code de la requête:
Code:SELECT COUNT(*) FROM Utilisateur u WHERE u.flagsup=1
Le problème vient du WHERE, j'ai du mal à l'implémenter en critéria.
voici ma requête en critéria :
Je veux faire une séléction avec un WHERE, où l'insérer et comment ?Code:
1
2
3
4
5
6
7
8 public Long nombreUser() { CriteriaQuery cq = em.getCriteriaBuilder().createQuery(); javax.persistence.criteria.Root rt = cq.from(Utilisateur.class); cq.select(em.getCriteriaBuilder().count(rt)); javax.persistence.Query q = em.createQuery(cq); return ((Long) q.getSingleResult()).longValue(); }
Change le domaine de la discussion alors. Ici c'est le sous-domaine Hibernate...
Bonjour,
A+.Code:
1
2
3
4
5
6
7 CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder(); CriteriaQuery<Long> criteriaQuery = criteriaBuilder.createQuery(Long.class); Root<Utilisateur> root = criteriaQuery.from(Utilisateur.class); criteriaQuery.select(criteriaBuilder.count(criteriaQuery.from(Utilisateur.class))) .where(criteriaBuilder.equal(root.get("idUtilisateur"), 1)); Long n = em.createQuery(criteriaQuery).getSingleResult(); System.out.println(n);
tu dois remplacer 'idUtilisateur' de mon code par 'flagsup'.
A+.
Voici la modification que vous m'avez démandé de faire autrefois ( remplacer idutilisateur de ton code par flagsup) :
La table où j' effectue ma requête n'est reliée à aucune autre table.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 public Long nombreUserFlag() { CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder(); CriteriaQuery<Long> criteriaQuery = criteriaBuilder.createQuery(Long.class); Root<Utilisateur> root = criteriaQuery.from(Utilisateur.class); criteriaQuery.select(criteriaBuilder.count(criteriaQuery.from(Utilisateur.class))) .where(criteriaBuilder.equal(root.get("flagsup"), 0)); Long n = em.createQuery(criteriaQuery).getSingleResult(); System.out.println(n); return n; }
le problème est que j'ai du mal à traduire cette requête SQL ci-dessous en critéria :
La requête critéria ci-dessus me renvoie 4 utilisateurs dont le flagsup=0 quand j'en ai deux dans la base de données et 9 quand j'en ai 3,d'où j'ai parlé de produit cartésien .Code:SELECT COUNT(*) FROM Utilisateur u WHERE u.flagsup=0