QueryDSL以双向关系加入两级关闭

时间:2015-05-21 20:32:47

标签: querydsl

我正在寻找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的两个对象。理想情况下,它应该只返回一个对象和两个细节。

请建议我如何通过订单的一个对象及其细节的子项,然后在细节内部的子行来实现此目的。

0 个答案:

没有答案