0
加入我有以下SQL查詢:休眠條件查詢與條件
SELECT
tos.ID
FROM
TESTCYCLE_OPCO_SETTING tos
JOIN OPCO o
ON o.ID = tos.OPCO_ID
JOIN TESTCYCLE tc
ON tc.ID = tos.TESTCYCLE_ID
LEFT OUTER JOIN BUILD b
ON b.ID = tc.BUILD_ID
LEFT OUTER JOIN BUILD_OPCO_SETTING bos
ON bos.BUILD_ID = b.ID
AND bos.OPCO_ID = o.ID
需要的是,該OPCO_ID形成TESTCYCLE_OPCO_SETTING被用來獲取相應的BUILD_OPCO_SETTING。我在最後一個JOIN中用「AND」條件完成了這項工作。
我現在要創建一個Hibernate查詢性判據出這一點,並創建以下別名的加入:
criteria.createAlias("opco", "opco");
criteria.createAlias("testcycle", "testcycle");
criteria.createAlias("testcycle.build", "build", CriteriaSpecification.LEFT_JOIN);
criteria.createAlias("build.buildOpcoSettings", "buildOpcoSetting", CriteriaSpecification.LEFT_JOIN, Restrictions.eqProperty("buildOpcoSetting.opco.id", "opco.id"));
但是第四別名拋出一個SQL錯誤,我認爲我使用這個錯誤地爲我想達到的目的。如果我用一個特定的數值替換屬性「opco.id」,它可以工作,但這當然不會幫助我。 任何想法?