如何将SQL子查询转换为HQL?

如何将SQL子查询转换为HQL?,sql,postgresql,hibernate,hql,Sql,Postgresql,Hibernate,Hql,我问了一个问题 解决办法是: select * from table_name t inner join (select max(seq) seq, row_name from table_name group by row_name) t1 on t1.row_name = t.row_name and t.seq = t1.seq 但是我需要把它转换成HQL。解决方案在中使用了HQL中不允许的子查询 如何使用SELECT或WHERE将子查询转换为HQL 谢谢。您可以通过以下方式实

我问了一个问题

解决办法是:

select * from table_name t
inner join 
    (select max(seq) seq, row_name from table_name group by row_name) t1 on t1.row_name = t.row_name and t.seq = t1.seq
但是我需要把它转换成HQL。解决方案在中使用了HQL中不允许的子查询

如何使用SELECT或WHERE将子查询转换为HQL


谢谢。

您可以通过以下方式实现您的目标,请参阅

试试这个

List<Object[]> objects = session.createNativeQuery(
                "select * from table_name t"
                + "inner join"
                + "(select max(seq) seq, row_name from table_name group by row_name) t1"
                + "on t1.row_name = t.row_name and t.seq = t1.seq")
.list();

这表明通过本机查询在HQL中使用子查询

yo不能在HQL上使用此语法,您可以为子查询添加一个视图,然后将其映射到模型上,然后将其加入到查询中。