sql >> Database teknologi >  >> RDS >> Mysql

JpaSpecificationExecutor JOIN + BESTIL AF i specifikation

Prøv noget som dette (jeg gik ud fra, at kæledyr har mange ejere):

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);
            }
        };
    }

Dette er blot et eksempel for at søge efter alle kæledyr, hvis mindst én ejer har navn svarende til ejernavn

Men du kan tilføje en metode List<Pet> findByOwnersNameOrderByIdDesc(String ownerName); i dit lager i stedet (som en ækvivalent til specifikation).




  1. MySQL Connector/Python - indsæt python-variabel til MySQL-tabel

  2. Hvordan kontrollerer man det maksimale antal tilladte forbindelser til en Oracle-database?

  3. ActiveRecord3 dødvande prøv igen

  4. MySql:MyISAM vs. Inno DB!