HQL 中的 Group by 子句

Group by clause in HQL

如何在 hibernate 中用 HQL 编写给定的 sql 并获取包含两列的对象数组

select specialization, count(specialization) 
from ocs_tbl_doctor group by specialization;

映射 Bean class 是

DoctorBean.java

@Entity
@Table(name = "OCS_TBL_DOCTOR")
public class DoctorBean {

@Id
@Column(name = "DOCTORID")
private String doctorID;

@Column(name = "DOCTORNAME")
private String doctorName;

@Column(name = "DATEOFBIRTH")
private Date dateOfBirth;

@Column(name = "DATEOFJOINING")
private Date dateOfJoining;

@Column(name = "GENDER")
private String gender;

@Column(name = "QUALIFICATION")
private String qualification;

@Column(name = "SPECIALIZATION")
private String specialization;

@Column(name = "YEARSOFEXPERIENCE")
private int yearsOfExperience;

@Column(name = "STREET")
private String street;

@Column(name = "LOCATION")
private String location;

@Column(name = "CITY")
private String city;

@Column(name = "STATE")
private String state;

@Column(name = "PINCODE")
private String pincode;

@Column(name = "CONTACTNUMBER")
private String contactNumber;

@Column(name = "EMAILID")
private String emailID;

//getters and setters
}

我在投影第二列时遇到问题,即 (count(specialization))

看看documentation

select doc.specialization, count(doc)
from DoctorBean doc
group by doc.specialization

试试这个:

select d.specialization, count(d.specialization) 
from DoctorBean d  group by d.specialization;