Posteriormente a consultar con especialistas en esta materia, programadores de varias ramas y maestros hemos dado con la respuesta a la pregunta y la compartimos en este post.
Solución:
La mejor y más sencilla forma en jpa:
public interface YourEntityRepository extends JpaRepository
Long countByAgeGreaterThan(Integer age);
Usar ParameterExpression
. Nota: no probado.
CriteriaBuilder qb = entityManager.getCriteriaBuilder();
CriteriaQuery cq = qb.createQuery(Long.class);
cq.select(qb.count(cq.from(MyEntity.class)));
ParameterExpression p = qb.parameter(Integer.class);
q.where(qb.eq(c.get("age"), 45));
return entityManager.createQuery(cq).getSingleResult();
Referencia.
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("your table name");
EntityManager em = emf.createEntityManager();
// JPA Query Language is executed on your entities (Java Classess), not on your database tables;
Query query = em.createQuery("SELECT count(*) FROM your Classname WHERE ... etc");
long count = (long) query.getSingleResult();
Comentarios y calificaciones
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)