#spring #hibernate #jpa #nested #spring-data-jpa
#spring #спящий режим #jpa #вложенный #весна-данные-jpa
Вопрос:
Мне нужно выбрать все 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 имеет свойство ExecutionTime, по которому мне нужно сортировать.
Возможно ли это сделать с помощью 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);
Комментарии:
1. В чем ошибка?
2. В решениях нет ошибок, но результат всегда пустой, в то время как при тестировании он должен иметь несколько значений
3. разве ты не скучаешь
select
по этому@Query
поводу ?4. нет, это не меняет его, я пытаюсь с помощью scheduleOrderRepository.findByExecutionTime(Instant.now(), Instant.now().plus(3, ChronoUnit.DAYS)) В то время как в этом месяце каждый день выполняется 2