I am trying to get the average salary of all employees for each company:
<table>
<tr>
<th>Company</th>
<th>Total Number of Employees</th>
<th>Average Salary</th>
</tr>
<% for (Company company : companys) {%>
<tr>
<td><%=company.getName()%></td>
<td><%=company.getEmployees().size()%></td>
<td><%=company.getEmployees() ???? %></td>
</tr>
<% } %>
</table>
my question:
I don't know how to calculate the average of the salary for each company. Could somebody help me to achieve this?
here is my Company.java
public class Company implements Serializable {
...
@OneToMany(mappedBy="company", fetch=FetchType.LAZY)
private List<Employee> employees;
...
public List<Employee> getEmployees() {
return this.employees;
}
}
inside my controller.java
private void doCompanys(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<Company> companys = CompanyDAO.getAll();
request.setAttribute("companys", companys);
loadJSP(urlCompanys, request, response);
}
and inside my CompanyDAO.java file
public static List<Company> getAll() {
EntityManager em = GestionFactory.factory.createEntityManager();
Query q = em.createQuery("SELECT c FROM Company c");
@SuppressWarnings("unchecked")
List<Company> listCompany = q.getResultList();
return listCompany;
}
inside my EmployeeDAO.java
public static List<Employee> getAll() {
EntityManager em = GestionFactory.factory.createEntityManager();
Query q = em.createQuery("SELECT e FROM Employee e");
@SuppressWarnings("unchecked")
List<Employee> listEmployee = q.getResultList();
return listEmployee;
}
and inside Employee.java
public int getSalary() {
return this.empSalary;
}