Мне нужно выбрать все ScheduleOrderEntities, у которых свойство вложенного списка вложенного списка является датой между ...
В приведенных ниже решениях нет ошибок, но результат всегда пуст, в то время как он должен иметь несколько значений при тестировании с:
scheduleOrderRepository.findByExecutionTime(Instant.now(), Instant.now().plus(3, ChronoUnit.DAYS))
Хотя в этом месяце каждый день проводятся 2 казни
каждый объект ScheduleOrderEntity имеет свойство:
@OneToMany(cascade = CascadeType.ALL, mappedBy = "parentOrder", orphanRemoval = true)
private List<SchedulePlanEntity> schedulePlanEntities;
И каждый SchedulePlanEntity имеет:
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
private List<ScheduleEntity> scheduleEntityList;
ScheduleEntity имеет свойство executeTime, по которому мне нужно отсортировать.
Можно ли сделать с jpa? Нет проблем сделать это со стандартным запросом, но я хочу знать, возможно ли это с помощью ORM.
Я пробовал оба:
@Query("SELECT soe FROM ScheduleOrderEntity soe LEFT JOIN soe.schedulePlanEntities
spe LEFT JOIN spe.scheduleEntityList sel WHERE sel.executionTime BETWEEN
:start AND :stop")
List<ScheduleOrderEntity> findByExecutionTime(@Param("start") Instant start, @Param("stop") Instant stop);
List<ScheduleOrderEntity> findBySchedulePlanEntities_ScheduleEntityList_ExecutionTimeBetween(@Param("start") Instant start, @Param("stop") Instant stop);