sql >> Database >  >> RDS >> Mysql

JpaSpecificationExecutor JOIN + ORDER BY in Specificatie

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).




  1. fullCalendar-gebeurtenissen posten methode naar MySQL

  2. SQL Server Bulk invoegen van CSV-bestand met inconsistente aanhalingstekens

  3. mysql root-wachtwoord vergeten

  4. Hoe transacties en vergrendelingen correct te gebruiken om de database-integriteit te waarborgen?