我实际上是休眠的新手。在创建下面的 sql 查询的条件对象时遇到问题。请你带领我好吗?
SELECT P1.*,O1.PROJECT_OID FROM POINTALL P1
LEFT JOIN
OPERATION_PLAN O1
ON P1.OID = O1.GEOVISION_POINT_OID;
我实际上是休眠的新手。在创建下面的 sql 查询的条件对象时遇到问题。请你带领我好吗?
SELECT P1.*,O1.PROJECT_OID FROM POINTALL P1
LEFT JOIN
OPERATION_PLAN O1
ON P1.OID = O1.GEOVISION_POINT_OID;
如果您的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);
您无需创建标准。您可以执行本机 SQL 查询,甚至可以在与 SQL 非常相似的 HQL 中编写相同的查询。