Java 如何使用子查询进入";从「;hibernate中的子句?

Java 如何使用子查询进入";从「;hibernate中的子句?,java,sql,hibernate,subquery,hql,Java,Sql,Hibernate,Subquery,Hql,我有三个表格:班级,学生,和老师 table class { class_id(PK) } table student { student_id(PK) class_id(PK+FK) } table teacher { teacher_id(PK) class_id(PK+FK) } 我有一个SQL查询,可以正常工作 SELECT data.class_id, count(data.class_id) AS count FROM ((SELECT

我有三个表格:
班级
学生
,和
老师

table class
{
    class_id(PK)
}

table student
{
    student_id(PK)
    class_id(PK+FK)
}

table teacher
{
    teacher_id(PK)
    class_id(PK+FK)
}
我有一个SQL查询,可以正常工作

SELECT data.class_id, count(data.class_id) AS count
FROM ((SELECT class_id FROM student)
        union all
        (SELECT class_id FROM teacher)) AS data
GROUP BY data.user_id
ORDER BY count desc
查询包含from子句联合操作中的子查询。 我无法将其转换为HQL


请从上面的SQL查询中为我提供有效的HQL查询。

您不能在HQL中的
from
子句中放置子查询。仅选择
where
子句

不幸的是。解决问题的两种备选策略是:

  • 映射
  • 或者。特别是由
    学生
    教师
    继承的抽象
    人物
    超类策略似乎非常适合您的问题:

    select p.id, count(c)
    from Person p join p.classes c
    group by p.id
    order by count(c) desc
    

感谢您提供文档链接。重读这些章节是值得的。