我正在开发一个应用程序,在这个应用程序中,公交车司机可以和孩子的父母在他们处理的路线上进行集体聊天。
我想有一个选项,在公共汽车到达最后一站之前向所有聊天室发送消息。
我尝试过这个查询,但它总是返回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行只对剩余站点上的独生子女进行群聊筛选。
我做错什么了?
1条答案
按热度按时间i34xakig1#
因为这涉及到jpql中的一个复杂查询,所以最好使用本机查询。