Probeer zoiets als dit (ik nam aan dat een huisdier veel baasjes heeft):
public static Specification<Pet> ownerNameEqual(String ownerName) {
return new Specification<Pet>() {
@Override
public Predicate toPredicate(Root<Pet> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
Join<Pet, Owner> owners = root.join("owners");
criteriaQuery.orderBy(criteriaBuilder.desc(root.get("id")));
return criteriaBuilder.equal(owners.get("name"), ownerName);
}
};
}
Dit is slechts een voorbeeld om alle huisdieren te zoeken waarvan ten minste één eigenaar een naam heeft die gelijk is aan ownerName
Maar je zou een methode kunnen toevoegen List<Pet> findByOwnersNameOrderByIdDesc(String ownerName);
in plaats daarvan in uw repository (als een equivalent van Specificatie).