Advertisement
nikeza

Untitled

Feb 23rd, 2020
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.10 KB | None | 0 0
  1.  private void findEmployeesMaximumSalaries() {
  2.             List<Employee> employeesGroupBy = em.createQuery("SELECT e FROM Employee e GROUP BY e.department.id " +
  3.                     "HAVING MAX(e.salary)  NOT BETWEEN 30000 and  70000", Employee.class)
  4.                     .getResultList();
  5.  
  6.             List<Employee> employees = em.createQuery("SELECT e FROM Employee  e ", Employee.class)
  7.                     .getResultList();
  8.  
  9.         for (Employee d : employeesGroupBy) {
  10.             System.out.printf("%s %s%n"
  11.                     , d.getDepartment().getName()
  12.                     , getMaxSalary(d.getDepartment().getName(), employees));
  13.         }
  14.  
  15.  
  16.     }
  17.  
  18.     private BigDecimal getMaxSalary(String name, List<Employee> employees) {
  19.  
  20.         BigDecimal result;
  21.         Employee employee = employees.stream().filter(f -> f.getDepartment().getName().equals(name))
  22.                 .sorted((f, s) -> s.getSalary().compareTo(f.getSalary()))
  23.                 .limit(1)
  24.                 .findFirst()
  25.                 .orElse(null);
  26.  
  27.         result = employee.getSalary();
  28.  
  29.         return result;
  30.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement