繁体   English   中英

HQL:内部联接

[英]HQL : inner join

我想在我的hql查询中进行内部联接,但是出现了以下错误:

造成原因:org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:(...

SELECT new myDto(
                col1, col2
            FROM table1,table2
            INNER JOIN (
                SELECT foo, bar, ...  max(nb) as numberBar
                FROM table1
                GROUP BY foo, bar ...
             )  myAlias

             ON table1.foo = myAlias.foo
             AND table1.bar = myAlias.bar
             ...

该查询在sqldeveloper中有效

只是检查您已发布的查询,我认为您必须在col2之后关闭new myDto的括号,因为在您发布的该查询中未关闭:

SELECT new myDto(
                col1, col2)
            FROM table1,table2
            INNER JOIN (
                SELECT foo, bar, ...  max(nb) as numberBar
                FROM table1
                GROUP BY foo, bar ...
             )  myAlias

             ON table1.foo = myAlias.foo
             AND table1.bar = myAlias.bar
             ...

休眠似乎并不支持inner join与随后select 内与选择的HQL加盟我管理,使其工作:

 SELECT new myDto(
  //usual colums selection here
  from table1, table2 
 where ...
 AND ....

// solution  here without inner join
AND (  table1.foo, table1.bar, nb)
IN (select foo, bar, max(nb) as number
    from table1     
    group by foo, bar)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM