Java 显示JSP上聚合函数的值
我正在使用Hibernate和JPA。我有实体类公司 CompanyRate.javaJava 显示JSP上聚合函数的值,java,sql,hibernate,jsp,jpa,Java,Sql,Hibernate,Jsp,Jpa,我正在使用Hibernate和JPA。我有实体类公司 CompanyRate.java @Entity public class CompanyRate { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int idRate; @Column(nullable = false) private int atmosphere; @Column(nullable = t
@Entity
public class CompanyRate {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int idRate;
@Column(nullable = false)
private int atmosphere;
@Column(nullable = true)
private int salary;
@Column(nullable = false)
private int opportunityToDevelop;
@Column(nullable = false)
private int socialPackage;
@ManyToOne(targetEntity = User.class)
private User user;
@ManyToOne(targetEntity = Company.class)
Company company;
}
我想显示气氛、工资、发展机会、社会包的平均值,其中company.idcompany=?在JSP上
Ofc我可以在执行的查询上使用getResultList(),并在JSP上使用。但是我想把每个结果分配给一个变量。最好的方法是什么?您所问的问题相当于以下SQL:
SELECT c.id,
AVG(t.atmosphere),
AVG(t.salary),
AVG(t.opportunityToDevelop),
AVG(t.socialPackage)
FROM table t, company c
WHERE t.companyid = c.id
AND c.id IN (:companyIds)
GROUP BY c.id;
将上述内容转换为HQL/JPQL或利用Hibernate或JPA标准API应该是一个简单的练习
只需确保在构建的
查询上调用setParameter(“companyId”,ListofCompanyId)
,然后根据您使用的API调用getResultList()
或list()
。我可以对每个变量执行单个查询,但有一种方法可以只使用一个查询?