我正在寻找QueryDSL帮助。
我有三张桌子。 1)订单2)细节3)行
订单可以有多个细节,细节可以有多行。
所以我订购了OrderDO
// bi-directional many-to-one association to FociRequestDetail
@OneToMany(mappedBy = "omsOrder")
private List<FociRequestDetailDO> fociRequestDetails;
并在DetailsDO中
// bi-directional many-to-one association to FociRequestLine
@OneToMany(mappedBy = "fociRequestDetail")
private List<FociRequestLineDO> fociRequestLines;
@ManyToOne
@JoinColumn(name = "OMS_ORDER_ID")
private OmsOrderDO omsOrder;
并在LinesDO
中@ManyToOne
@JoinColumn(name = "REQUEST_DETAIL_ID")
private FociRequestDetailDO fociRequestDetail;
我想查询给定orderId = 12345
的所有细节和行所以我的结果应该有一个对象或OrderDO OrderDO,因为它可以是给定OrderId的一个 - 细节DO应该是基于orderId的多个或一个 ----线条DO应该是基于detailId的多个或一个
我试过了 .from(orderDO).join(orderDO.fociRequestDetails,fociRequestDetailDO) 。凡(orderDO.orderId.eq(orderNo));
它给了我OrderDO的两个对象。理想情况下,它应该只返回一个对象和两个细节。
请建议我如何通过订单的一个对象及其细节的子项,然后在细节内部的子行来实现此目的。