如何在JPARepository中编写内部连接查询

问题描述:

我有以下在MySQL中完美运行的查询,但是当我在存储库中编写时会出现错误如何在JPARepository中编写内部连接查询?如何在JPARepository中编写内部连接查询

@Query("Select address from Address a inner join Order o ON a.id=o.pickup_address_id where o.customer_id=: customerId AND a.address LIKE 'C%'") 
    Set<Address> findPickupAddress(@Param("customerId") Long customerId); 

错误:意外的标记:邻近线1阶,柱66

order是一个保留字。如果不能重命名表,你应该使用它想:

@Query("Select address from Address a inner join `Order` o ON ...") 
+0

检查我的回答是:') – SFAH

+0

中的查询你的问题是一个本地的SQL查询,而不是一个jpql! –

有一个在JPQL没有ON所以查询作为更新:

@Query("Select a from Address a , Order o where a.id=o.pickupAddress AND o.customer.id=:customerId AND a.address LIKE 'C%'") 
    Address findPickupAddress(@Param("customerId") Long customerId); 
} 
+0

这会生成一个外部连接而不是内部连接! –