您不应在HQL中使用显式的“ JOIN ON”。相反,您可以在HQL中使用隐式联接:
SELECt rm.id , rm.routeCode , rm.startPlaceId , rm.endPlaceId , rm.active , rm.linkedRoute FROM com.abhibus.oprs.pojo.routes.RouteMaster rm INNER JOIN rm.routeHalts rh WHERe rh.placeId = :PlaceId ORDER BY rm.id ASC
或者您可以使用Theta风格编写联接:
SELECt rm.id , rm.routeCode , rm.startPlaceId , rm.endPlaceId , rm.active , rm.linkedRoute FROM com.abhibus.oprs.pojo.routes.RouteMaster rm, RouteHalts rhWHERe rm.id = rh.routeId AND rh.placeId = :PlaceId ORDER BY rm.id ASC
您也可以将查询作为本机SQL查询而不是HQL查询执行。为此,您应该使用
session.createSQLQuery(queryText);
代替
session.createQuery(queryText);
顺便说一句,在您的情况下,最好是获取整个实体,而不是分开的字段(列)?为此,您可以使用:
select rm from ...
这将返回
List<RouteMaster>insted的的
List<Object[]>。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)