Java 如何将SQL查询转换为hibernate

Java 如何将SQL查询转换为hibernate,java,mysql,sql,hibernate,Java,Mysql,Sql,Hibernate,当我尝试运行这个时,我得到“无法在类上找到合适的构造函数” SQL: 这是我尝试过的,但似乎不起作用-HQL: select new Class(class, count(students.studentId)) from Class as class left join class.students as students group by class.classId 我的对象类上有一个构造函数,如: public Class(Class class, long studentC

当我尝试运行这个时,我得到“无法在类上找到合适的构造函数”

SQL:

这是我尝试过的,但似乎不起作用-HQL:

select new Class(class, count(students.studentId))
from Class as class    
left join class.students as students
group by class.classId  
我的对象类上有一个构造函数,如:

public Class(Class class, long studentCount){
    // [...]
}

首先,不要用Class作为类名,它是一个保留字

我认为您的HQL应该如下所示:

"select new map(class, count(students.studentId) as studentCount) from Class class left 
join fetch class.students students group by class.classId");

class
是Java中的保留字。小心点,谢谢你的回复。我尝试了您的建议,现在我收到了另一条错误消息“查询指定的联接获取,但获取的关联的所有者不在选择列表中”尝试给学生一个名称
左联接类。学生如果忘记将获取添加到左联接,这也可能是错误的来源。因此,完整的hql:“选择新映射(class,count(studentId)作为studentCount)从class左侧加入fetch class.students按class.classId分组”);我也试过了,但它不起作用这里是Hibernate映射:
"select new map(class, count(students.studentId) as studentCount) from Class class left 
join fetch class.students students group by class.classId");