Prova något sånt här (jag antog att husdjuret har många ägare):
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);
}
};
}
Detta är bara ett exempel för att söka efter alla husdjur vars minst en ägare har ett namn som är lika med ägarenamn
Men du kan lägga till en metod List<Pet> findByOwnersNameOrderByIdDesc(String ownerName);
i ditt arkiv istället (som en motsvarighet till specifikation).