У меня есть два класса сущностей со многими отношениями к одному. Мне нужно выбрать все родительские записи, у которых есть дочерняя запись со значением min, меньшим, чем указано.
@Entity <br/>
class Parent; { <br/>
String source; <br/>
} <br/></p>
<p>@Entity <br/>
class child { <br/>
@ManyToOne Parent parent; <br/>
int value; <br/>
}
Что мне нужно, это выбрать все родительские классы, где Parent.source = X и min (Child.value>
CriteriaBuilder cb = context.em().getCriteriaBuilder(); <br/>
CriteriaQuery cq = cb.createQuery(Parent.class); <br/>
Root r = cq.from(Parent.class); <br/>
Predicate p = cb.conjunction(); <br/>
p = cb.and(p, cb.equal(r.get("source"), X)); <br/>
Expression y = cb.literal(Y); <br/>
// what to do with y? <br/>
cq.where(p); <br/>
TypedQuery tq = context.em().createQuery(cq); <br/>
tq.setFirstResult(0); <br/>
tq.setMaxResults(100); <br/>
return tq.getResultList(); <br/>