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
感谢您提供文档链接。重读这些章节是值得的。