try
{
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Section> cq = cb.createQuery(Section.class);
Root<Section> sectionRoot = cq.from(Section.class);
Predicate criteria = cb.conjunction();
criteria = cb.and(criteria, cb.equal(sectionRoot.get("course").get("name"),
section.getCourse().getName()));
criteria = cb.and(criteria, cb.equal(sectionRoot.get("name"), section.getName()));
cq.where(criteria);
TypedQuery<Section> sectionQuery = em.createQuery(cq);