在下面的代码中,我想从Order表和User表中获取数据如何修改我的查询以便我可以实现这一点? user_id
是订单表中的外键
public interface OrderRepository extends JpaRepository<Order, Long> {
@Query("Select o from Order o where o.customer.id= :customerId and o.orderStatus='DELIVERED'")
List<Order> orderHistory(@Param("customerId") long customerId);
}
答案 0 :(得分:1)
要通过订单获取客户,请执行加入提取。
JOIN FETCH 表达式不是常规JOIN,也不定义JOIN变量。它的唯一目的是指定应该从数据库中获取的相关对象,并且查询结果在同一往返中。使用此查询可提高结果Country对象的迭代效率,因为它无需单独检索关联的Capital对象。 http://www.objectdb.com/java/jpa/query/jpql/from
public interface OrderRepository extends JpaRepository<Order, Long> {
@Query("Select o from Order o inner join fetch o.customer as customer left join fetch o.user as user where customer.id= :customerId and o.orderStatus='DELIVERED'")
List<Order> orderHistory(@Param("customerId") long customerId);
}
答案 1 :(得分:0)
您想将customerId和order字段放入param吗? 我认为列出params中的订单字段就足够了。 当然sql语句必须是正确的。