【发布时间】:2013-09-24 11:55:54
【问题描述】:
我实际上是休眠的新手。在创建下面的 sql 查询的条件对象时遇到问题。请你带我走好吗?
SELECT P1.*,O1.PROJECT_OID FROM POINTALL P1
LEFT JOIN
OPERATION_PLAN O1
ON P1.OID = O1.GEOVISION_POINT_OID;
【问题讨论】:
标签: sql hibernate criteria hibernate-criteria
我实际上是休眠的新手。在创建下面的 sql 查询的条件对象时遇到问题。请你带我走好吗?
SELECT P1.*,O1.PROJECT_OID FROM POINTALL P1
LEFT JOIN
OPERATION_PLAN O1
ON P1.OID = O1.GEOVISION_POINT_OID;
【问题讨论】:
标签: sql hibernate criteria hibernate-criteria
如果您的 POINTALL 和 OPERATION_PLAN 表被映射,那么只有条件才能工作,否则使用 HQL 或 SQL。
这是你需要创建的
Criteria criteria = getSession().createCriteria(POINTALL.class,"P1");
ProjectionList projections = Projections.projectionList();
projections.add(Projections.property("P1.something"),"aliasName");
projections.add(Projections.property("P1.something"),"aliasName");
..
projections.add(Projections.property("O1.PROJECT_OID"),"PROJECT_OID");
criteria.createAlias("P1.OPERATION_PLAN","O1", Criteria.LEFT_JOIN);
criteria.setProjection(projections);
【讨论】:
OPERATION_PLAN 指定的确切名称
您无需创建标准。您可以执行本机 SQL 查询,甚至可以在与 SQL 非常相似的 HQL 中编写相同的查询。
【讨论】: