首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将SQL查询转换为HQL

将SQL查询转换为HQL
EN

Stack Overflow用户
提问于 2012-08-17 21:21:13
回答 1查看 1.2K关注 0票数 2

我需要将此SQL查询转换为HQL

代码语言:javascript
复制
select
        * 
    from
        ( select
            routemaste0_.ROUTE_ID as col_0_0_,
            routemaste0_.ROUTE_CODE as col_1_0_,
            routemaste0_.START_PLACE_ID as col_2_0_,
            routemaste0_.END_PLACE_ID as col_3_0_,
            routemaste0_.IS_ACTIVE as col_4_0_,
            routemaste0_.LINKED_ROUTE as col_5_0_
        from
            OPRS_ROUTE_MASTER routemaste0_
            inner join OPRS_ROUTE_HALTS routehalts0_
                 on routemaste0_.route_id = routehalts0_.route_id
        where routehalts0_.PLACE_ID = '51'
        order by
            routemaste0_.ROUTE_ID ASC  )

我试过这种方式

代码语言:javascript
复制
SELECT    rm.id , 
          rm.routeCode , 
          rm.startPlaceId , 
          rm.endPlaceId , 
          rm.active , 
          rm.linkedRoute 
FROM      RouteMaster rm  
          INNER JOIN  rm.routeHalts AS rh 
WHERE     rm.id = rh.routeId  
          AND  rh.placeId = :PlaceId  
ORDER BY  rm.id  ASC

但是没有得到预期的结果。我担心的是,我需要执行inner join on条件。

谁能帮帮我?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-17 21:31:27

我认为问题的原因可能是route_id不是任何表中的主键。这就是为什么我建议你在这种情况下尝试Theta样式的连接:

代码语言:javascript
复制
SELECT  rm.id , rm.routeCode , rm.startPlaceId , rm.endPlaceId , rm.active, rm.linkedRoute 
FROM RouteMaster rm, RouteHalts rh
WHERE rm.routeId = rh.routeId AND rh.placeId = :PlaceId  
ORDER BY  rm.id  A

在您的HQL查询的变体中,您不需要在where条件中使用rm.id = rh.routeId部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12006654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档