Mysql
 sql >> база данни >  >> RDS >> Mysql

JpaSpecificationExecutor JOIN + ORDER BY в Спецификация

Опитайте нещо подобно (предполагах, че домашният любимец има много собственици):

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

Това е само пример за търсене на всички домашни любимци, чийто поне един собственик има име, равно на ownerName

Но можете да добавите метод List<Pet> findByOwnersNameOrderByIdDesc(String ownerName); вместо това във вашето хранилище (като еквивалент на Спецификация).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PID грешка при стартиране на mysql.server?

  2. Sqlite или MySql? Как да решим?

  3. Как да генерирате уникална произволна стойност за всеки потребител в laravel и да я добавите към базата данни

  4. Добавете уникално ограничение въз основа на стойността на полето

  5. MySQL InnoDB:Разлика между „ЗА АКТУАЛИЗИРАНЕ“ и „ЗАКЛЮЧВАНЕ В РЕЖИМ НА СПОДЕЛЯНЕ“