Between
słowo kluczowe naturalnie wiąże dwa parametry. Tak więc po związaniu klauzuli from lista parametrów jest wyczerpana i nie wiemy, których parametrów użyć dla drugiego kryterium.
Ręczne zapytanie powinno wystarczyć:
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);
}