Читать книгу Desarrollo de aplicaciones web con Jakarta EE - César Francisco Castillo - Страница 43
2.9.5 Ejemplos de consultas
ОглавлениеDesarrollaremos algunas consultas empleando parte de lo aprendido en esta sección de la API de Criterios.
Listado de carreras:
CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder(); CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(Carrera.class); Root<Carrera> raiz = criteriaQuery.from(Carrera.class); TypedQuery<Carrera> query = em.createQuery(criteriaQuery); return query.getResultList();
Obtener una determinada carrera según su id:
CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder(); CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(); Root <Carrera>raiz = criteriaQuery.from(Carrera.class); criteriaQuery.where(criteriaBuilder.equal(raiz.get(“idCarrera”), id)); Query query = em.createQuery(criteriaQuery); return (Carrera) query.getSingleResult();
Cantidad de carreras:
CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder(); CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(); Root<Carrera> raiz = criteriaQuery.from(Carrera.class);
criteriaQuery.select(criteriaBuilder.count(raiz)); TypedQuery<Long> query = em.createQuery(criteriaQuery); Long cantidad = query.getSingleResult();
return cantidad;
Listado de carreras ordenado de manera ascendente según su nombre:
CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder(); CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(); Root<Carrera> carreras = criteriaQuery.from(Carrera.class);
// Ordenamos ascendentemente
criteriaQuery.orderBy(criteriaBuilder.asc(carreras.get(“nombre”)));
TypedQuery<Carrera> query = em.createQuery(criteriaQuery); return query.getResultList();
Listado de carreras cuyo nombre contenga la cadena “pro”:
CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder(); CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(); Root <Carrera>raiz = criteriaQuery.from(Carrera.class); String texto = “pro”; criteriaQuery.where(criteriaBuilder.like(criteriaBuilder.lower(raiz.get(“nombre”)), “%” + texto + “%”)); TypedQuery<Carrera> query = em.createQuery(criteriaQuery); return query.getResultList();
Para mayor detalle sobre Criteria API puede acceder a la siguiente dirección URL: https://wiki.eclipse.org/Main_Page