Поиск объектов по свойству во вложенном списке объектов - PullRequest
0 голосов
/ 17 апреля 2019

Мне нужно выбрать все 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...