У меня есть эти JPA сущности (упрощенных):Заказав ответ JPA Repository по первому элементу в ссылочном Entity
@Entity
class Trip {
@Id
Long tripId;
String travelerName;
@OneToMany
List<TripLeg> tripLegs;
}
@Entity
class TripLeg {
@Id
Long tripLegId;
Calendar departureDate;
@ManyToOne
Trip trip;
}
и этот репозиторий:
interface TripRepository extends JpaRepository<Trip, Long> {
Page<Trip> findByTravelerName(String travelerName, Pageable pageable);
}
Есть ли способ, чтобы разобраться, что Ответ страницы на самую раннюю дату отъезда среди ночей поездки? Или через методы запросов или JPQL, или в свойствах сортировки Pageable?
Так, например, эта поездка:
{
id : 1,
travelerName : "John Doe",
tripLegs : [{
id : 3,
departureDate : 2015-10-03
}]
}
будет сортировать после этого один:
{
id : 2,
travelerName : "John Doe",
tripLegs : [{
id : 1,
departureDate : 2015-10-01
}, {
id : 2,
departureDate : 2015-10-05
}]
}
Это добавляет повторяющиеся записи на странице для каждого TripLeg - IE, страница результатов идет от 2 до 3 (по одному для каждого TripLeg, который мы сортируем). –
Сэм Джонс обновил ответ с запросом, но сначала попробуйте его или попробуйте преобразовать его в sql –