【问题标题】:jpa query where the entity on a collection is in a listjpa 查询集合上的实体在列表中的位置
【发布时间】:2011-01-19 11:54:20
【问题描述】:

标题中可能没有最好地描述,但我有 3 个实体

订单 -> OneToMany -> 订单产品

OrderProduct 产品

产品 OrderProduct ,

我的原生查询是

SELECT t0.*
FROM isc_orders t0 
INNER JOIN isc_customers t1 ON t0.ordcustid = t1.customerid 
INNER JOIN isc_order_products t2 ON t0.orderid = t2.orderorderid 
INNER JOIN isc_products t3 ON t2.ordprodid = t3.productid
where t3.productid in (359, 344, 345, 346, 347, 348)

有没有什么方法可以在一次选择中以 JPA 方式执行此操作,因为我有我的集合和实体急切加载连接,以便一次性填充对象图

【问题讨论】:

    标签: jpa openjpa


    【解决方案1】:

    类似这样的:

    SELECT DISTINCT o
    FROM Order o JOIN o.orderProducts op1
    JOIN FETCH o.orderProducts op2 JOIN FETCH op2.product
    WHERE op1.product.productid IN ?
    

    请注意,您需要两个与 OrderProducts 的连接 - 一个用于过滤,另一个用于急切获取。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-26
      • 2018-06-07
      • 2015-03-18
      • 2021-03-17
      • 2017-06-02
      • 1970-01-01
      • 1970-01-01
      • 2017-01-25
      相关资源
      最近更新 更多