2014-09-16 21 views
8

dữ liệu mùa xuân cung cấp một cách để tạo tìm kiếm SQL bằng cách xác định tên phương thức.Làm thế nào để kết hợp nhiều ngày giữa các tìm kiếm với CrudRepository của JPA dữ liệu mùa xuân?

Các công việc sau tốt:

@Entity 
public class Book { 
    Date from, to; 
} 

//CrudRepository<Book> 
findByFromDateBetween(Date departure, Date arrival); 

Nhưng tại sao sau đó nào sau đây không làm việc?

findByFromDateBetweenAndToDateBetween(Date departure, Date arrival); 

Để kết nối hai tìm kiếm ngày, tôi phải lặp lại ngày:

findByFromDateBetweenAndToDateBetween(Date departure, Date arrival, Date departure, Date arrival); 

Câu hỏi: là nó có thể tái sử dụng các params?

Trả lời

10

Từ khóa Between tự động liên kết hai tham số. Do đó sau khi liên kết mệnh đề from, danh sách tham số bị cạn kiệt và chúng ta không biết tham số nào được sử dụng cho các tiêu chí thứ hai.

Một truy vấn bằng tay được xác định nên làm các trick:

interface BookRepository extends Repository<Book, Integer> { 

    @Query("select b from Book b " + 
     "where b.from between ?1 and ?2 and b.to between ?1 and ?2") 
    List<Book> findByDatesBetween(Date departure, Date arrival); 
} 
Các vấn đề liên quan