I would like to use a parameter expression as part of an in clause. I would like to query for a list of Foos that have a Bar that is in a set of Bars. Is this possible?
Foo
// Join, ManyToOne
Bar getBar()
Query
ParameterExpression<???> barParameter;
void setup() {
CriteriaBuilder builder = ...
CriteriaQuery<Foo> criteria = ...
Root<Bar> root = ...
barParameter = builder.parameter(???);
criteria.where(
builder.in(root.get(Foo_.bar)).value(barParameter)
);
}
List<Foo> query(Set<Bar> bars) {
TypedQuery<Foo> query = createQuery();
query.setParameter(barParameter, bars);
return query.getResultList();
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…