【发布时间】:2014-09-11 09:43:03
【问题描述】:
我有以下 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
需要的是使用来自 TESTCYCLE_OPCO_SETTING 的 OPCO_ID 来获取相应的 BUILD_OPCO_SETTING。我在最后一次 JOIN 中使用“AND”条件完成了此操作。
我现在想从中创建一个 Hibernate Critera 查询并为连接创建以下别名:
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"));
但是,第 4 个别名会引发 SQL 错误,我认为我将其错误地用于我想要实现的目标。如果我用特定的数值替换属性“opco.id”,它可以工作,但这当然对我没有帮助。 有什么想法吗?
【问题讨论】:
标签: sql hibernate hibernate-criteria