我有这个问题:
@Query("SELECT p FROM Route p JOIN FETCH p.places pl WHERE pl.city = (:city)")
public List<Route> findByPlaces_City(@Param("city")City city);
它仅向我提取places.coty = city
的地方我需要的是: 如果来自路径的任何地点有城市之类的参数,请使用获取该路线中的所有地点获取该路线;
答案 0 :(得分:1)
尝试使用left join fetch
@Query("SELECT p FROM Route p LEFT JOIN FETCH p.places pl WHERE pl.city = (:city)")
答案 1 :(得分:1)
JPA不允许这样的查询,因为您可能不会对提取的连接应用限制。
但是您可以简单地使用内部联接来应用您的限制,并使用另一个获取联接来加载城市:
select distinct r from Route r
inner join r.places p
left join fetch r.places
where p.city = :city