0

我实际上是休眠的新手。在创建下面的 sql 查询的条件对象时遇到问题。请你带领我好吗?

SELECT P1.*,O1.PROJECT_OID FROM POINTALL P1
LEFT JOIN
OPERATION_PLAN O1
ON P1.OID = O1.GEOVISION_POINT_OID;
4

2 回答 2

1

如果您的POINTALLOPERATION_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);
于 2013-09-24T12:40:13.200 回答
0

您无需创建标准。您可以执行本机 SQL 查询,甚至可以在与 SQL 非常相似的 HQL 中编写相同的查询。

于 2013-09-24T12:00:08.440 回答