Filtre avec Criteria API
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Pet> cq = cb.createQuery(Pet.class);
Root<Pet> pet = cq.from(Pet.class);
Join<Pet, Owner> owner = pet.join("owner");
cq.select(pet)
.where(
cb.equal(pet.get("type"), "dog"),
cb.lessThan(pet.get("age"), 5),
cb.equal(owner.get("id"), ownerId)
)
.orderBy(cb.asc(pet.get("name")));
TypedQuery<Pet> q = em.createQuery(cq);
List<Pet> filteredPets = q.getResultList();
Combien de requêtes exécutées ?