Я работаю над приложением, в котором у водителей автобусов есть групповые чаты с родителями детей на маршрутах, которые они обрабатывают.
Я хочу иметь возможность отправлять сообщения всем чатам до последняя остановка автобуса.
Я пробовал этот запрос, но он всегда возвращает 0 результатов.Когда он определенно должен возвращать хотя бы один.
1 | @Query("select g from GroupChat g " +
2 | "join g.route r " +
3 | "join r.bus b " +
4 | "join b.mostRecentStop mrs " +
5 | "join r.stops s " +
6 | "join s.children c " +
7 | "where r.routeId = :routeId " +
8 | "and s.stopTime <= mrs.stopTime " +
9 | "and g.childId = c.childId ")
10|Set<GroupChat> getAllGroupChatsOnRouteForPreviousStops(@Param("routeId") short routeId);
GroupChats PK это routeId-childId
Строка 2 выбирает маршрут, с которым связан groupchat.
Строка 3 выбираетавтобус для этого маршрута.
Строка 4 выбирает самую последнюю остановку, к которой прибыл автобус.
Строка 5 выбирает все остановки на маршруте
Строка 6 выбирает всех детей на маршруте (т.е. каждый ребенок с каждой остановки)
Строка 7 фильтрует только запрашиваемый маршрут.
Строка 8 фильтрует остановки до самой последней остановки
Строка 9 фильтрует только групповые чаты только для детей на оставшихся остановках.
Что я делаю не так?