Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

JpaSpecificationExecutor JOIN + ORDER BY trong Đặc tả

Hãy thử một cái gì đó như thế này (tôi cho rằng vật nuôi có nhiều chủ):

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

Đây chỉ là một ví dụ để tìm kiếm tất cả các vật nuôi có ít nhất một chủ sở hữu có tên bằng ownerName

Nhưng bạn có thể thêm một phương thức List<Pet> findByOwnersNameOrderByIdDesc(String ownerName); trong kho lưu trữ của bạn thay thế (tương đương với Đặc tả).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP Chuyển đổi mysql sang mysqli

  2. Tóm tắt dữ liệu trong một bảng mới

  3. Cách nhanh nhất để duyệt qua bảng lớn bằng JDBC

  4. Khóa ngoại MySQL trên bản thân

  5. ORDER BY có áp dụng trước hay sau DISTINCT không?