代码之家  ›  专栏  ›  技术社区  ›  mjaggard

JPA错误地更改联接顺序

  •  0
  • mjaggard  · 技术社区  · 4 年前

    我在JPQL中有这样一个查询:

    SELECT ...
    FROM Receipt AS receipt
       JOIN Invoice AS invoice
    ON receipt.invoiceID = invoice.id
       LEFT JOIN Payment AS payment
    ON receipt.paymentID = payment.id
       LEFT JOIN CreditNote AS creditNote
    ON receipt.crmID = creditNote.id
       LEFT JOIN Profile AS profile
    ON invoice.accountID = profile.accountID
    WHERE ...
    

    然而,当我使用EclipseLink运行它时,我得到了无效的本机查询

    SELECT ...
    FROM   receipts t0
       LEFT OUTER JOIN payments t2
                    ON ( t0.payment_id = t2.id )
       LEFT OUTER JOIN credit_notes t3
                    ON ( t0.crm_id = t3.id )
       LEFT OUTER JOIN profile t4
                    ON ( t1.account_id = t4.account_id ),
       bills t1
    WHERE ...
    

    如何解决此问题?

    1 回复  |  直到 3 年前
        1
  •  0
  •   mjaggard    4 年前

    就我而言,我能够改变 JOIN 到 LEFT JOIN 所有的连接,然后我的命令得到了尊重。

    我怀疑根本问题是EclipseLink中的一个错误。