I have the following database model:
A
aId
AB
aId
bId
B
bId
status
In a Spring data Specification, I want to return the instances of A wh
The Specification that returns instances of A using Criteria API is the following:
public class ASpecifications {
public static Specification test(final String status) {
return new Specification() {
@Override
public Predicate toPredicate(Root a, CriteriaQuery> query, CriteriaBuilder cb) {
Subquery sq = query.subquery(A.class);
Root ab = sq.from(AB.class);
sq.select(ab.get(AB_.id).get(ABPK_.a));
sq.where(cb.equal(ab.get(AB_.id).get(ABPK_.b).get(B_.status), status));
Predicate p = cb.in(a).value(sq);
return cb.and(p);
}
};
}
}