diff --git a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/SupervisorServiceImpl.java b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/SupervisorServiceImpl.java index 7dae419717..a48645ec87 100644 --- a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/SupervisorServiceImpl.java +++ b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/SupervisorServiceImpl.java @@ -1,9 +1,11 @@ package se.su.dsv.scipro.springdata.serviceimpls; import com.mysema.query.jpa.impl.JPAQuery; +import com.mysema.query.types.OrderSpecifier; import com.mysema.query.types.Predicate; import com.mysema.query.types.Visitor; import com.mysema.query.types.expr.BooleanExpression; +import org.hibernate.hql.ast.tree.OrderByClause; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; @@ -29,8 +31,8 @@ public class SupervisorServiceImpl extends AbstractQueryService<Employee, Long> private SupervisorRepo supervisorRepo; -// @PersistenceContext -// private EntityManager em; + @PersistenceContext + private EntityManager em; @Autowired @@ -47,10 +49,15 @@ public class SupervisorServiceImpl extends AbstractQueryService<Employee, Long> @Override public Iterable<Employee> findByUsersName(final Date dateCreated) { QEmployee employee = QEmployee.employee; - BooleanExpression lastName = employee.user.lastName.eq("Vahlman"); + BooleanExpression lastName = employee.user.lastName.eq("Vahlman") + .or(employee.user.lastName.eq("Larsson") + .or(employee.user.lastName.eq("Friis")) + .or(employee.user.lastName.eq("Tholerus")) + .or(employee.user.lastName.eq("Hallberg"))); BooleanExpression isNewEmployee = employee.user.dateCreated.eq(dateCreated); - return queryDslPredicateExecutor.findAll((lastName).and(isNewEmployee)); -//return new JPAQuery(em).from(employee).where((lastName).and(isNewEmployee)).list(employee); + OrderSpecifier<?> order = employee.user.lastName.asc(); + return queryDslPredicateExecutor.findAll((lastName).and(isNewEmployee), order); +//return new JPAQuery(em).from(employee).where((lastName).and(isNewEmployee)).orderBy(order).list(employee); } } diff --git a/src/test/java/se/su/dsv/scipro/springdata/TestSupervisor.java b/src/test/java/se/su/dsv/scipro/springdata/TestSupervisor.java index e340c1e48f..230d9f3b80 100644 --- a/src/test/java/se/su/dsv/scipro/springdata/TestSupervisor.java +++ b/src/test/java/se/su/dsv/scipro/springdata/TestSupervisor.java @@ -63,11 +63,12 @@ public class TestSupervisor { return weights; } - private Employee getEmployee(final String firstName, final String lastName, final String email) { + private Employee getEmployee(final String firstName, final String lastName, final String email, final Date dateCreated) { User user = new User(); user.setFirstName(firstName); user.setLastName(lastName); user.setEmailAddress(email); + user.setDateCreated(dateCreated); user = userDao.save(user); assertNotNull(user); Employee employee = new Employee(); @@ -97,12 +98,12 @@ public class TestSupervisor { @Rollback public void findSupervisorLastName() { List<Employee> employeeList = new ArrayList<Employee>(); - Employee larsson = getEmployee("Ken", "Larsson", "kenlars@dsv.su.se"); - Employee hallberg = getEmployee("David", "Hallberg", "dhallb@dsv.su.se"); - Employee tholerus = getEmployee("Torgny", "Tholerus", "torgny@dsv.su.se"); - Employee moattar = getEmployee("Golrokh", "Moattar", "goli@dsv.su.se"); - Employee friis = getEmployee("Fredrik", "Friis", "fre-fri@dsv.su.se"); - Employee herder = getEmployee("Niklas", "Herder", "herder@dsv.su.se"); + Employee larsson = getEmployee("Ken", "Larsson", "kenlars@dsv.su.se", null); + Employee hallberg = getEmployee("David", "Hallberg", "dhallb@dsv.su.se", null); + Employee tholerus = getEmployee("Torgny", "Tholerus", "torgny@dsv.su.se", null); + Employee moattar = getEmployee("Golrokh", "Moattar", "goli@dsv.su.se", null); + Employee friis = getEmployee("Fredrik", "Friis", "fre-fri@dsv.su.se", null); + Employee herder = getEmployee("Niklas", "Herder", "herder@dsv.su.se", null); Sort sortOrder = new Sort(org.springframework.data.domain.Sort.Direction.ASC, "user.lastName"); employeeList.addAll(supervisorService.findAllEmployees(sortOrder)); assertFalse(employeeList.isEmpty()); @@ -118,12 +119,12 @@ public class TestSupervisor { @Rollback public void findSupervisorFirstName() { List<Employee> employeeList = new ArrayList<Employee>(); - Employee larsson = getEmployee("Ken", "Larsson", "kenlars@dsv.su.se"); - Employee hallberg = getEmployee("David", "Hallberg", "dhallb@dsv.su.se"); - Employee tholerus = getEmployee("Torgny", "Tholerus", "torgny@dsv.su.se"); - Employee moattar = getEmployee("Golrokh", "Moattar", "goli@dsv.su.se"); - Employee friis = getEmployee("Fredrik", "Friis", "fre-fri@dsv.su.se"); - Employee herder = getEmployee("Niklas", "Herder", "herder@dsv.su.se"); + Employee larsson = getEmployee("Ken", "Larsson", "kenlars@dsv.su.se", null); + Employee hallberg = getEmployee("David", "Hallberg", "dhallb@dsv.su.se", null); + Employee tholerus = getEmployee("Torgny", "Tholerus", "torgny@dsv.su.se", null); + Employee moattar = getEmployee("Golrokh", "Moattar", "goli@dsv.su.se", null); + Employee friis = getEmployee("Fredrik", "Friis", "fre-fri@dsv.su.se", null); + Employee herder = getEmployee("Niklas", "Herder", "herder@dsv.su.se", null); Sort sortOrder = new Sort(org.springframework.data.domain.Sort.Direction.ASC, "user.firstName"); employeeList.addAll(supervisorService.findAllEmployees(sortOrder)); assertFalse(employeeList.isEmpty()); @@ -141,18 +142,21 @@ public class TestSupervisor { public void findEmployeeByName() { List<Employee> employeeList = new ArrayList<Employee>(); Date dateCreated = new Date(); - Employee hallberg = getEmployee("David", "Hallberg", "dhallb@dsv.su.se"); - Employee tholerus = getEmployee("Torgny", "Tholerus", "torgny@dsv.su.se"); - Employee vahlman = getEmployee("Tom", "Vahlman", "tom@dsv.su.se"); - Employee larsson = getEmployee("Ken", "Larsson", "kenlars@dsv.su.se"); - vahlman.getUser().setDateCreated(dateCreated); - vahlman = supervisorService.save(vahlman); + Employee hallberg = getEmployee("David", "Hallberg", "dhallb@dsv.su.se", dateCreated); + Employee tholerus = getEmployee("Torgny", "Tholerus", "torgny@dsv.su.se", dateCreated); + Employee vahlman = getEmployee("Tom", "Vahlman", "tom@dsv.su.se", dateCreated); + Employee friis = getEmployee("Fredrik", "Friis", "fre-fri@dsv.su.se", dateCreated); + Employee larsson = getEmployee("Ken", "Larsson", "kenlars@dsv.su.se", dateCreated); for(Employee employee : supervisorService.findByUsersName(dateCreated)) { employeeList.add(employee); } assertFalse(employeeList.isEmpty()); - assertTrue(employeeList.size() == 1); - assertTrue(employeeList.get(0).equals(vahlman)); + assertTrue(employeeList.size() == 5); + assertTrue(employeeList.get(0).equals(friis)); + assertTrue(employeeList.get(1).equals(hallberg)); + assertTrue(employeeList.get(2).equals(larsson)); + assertTrue(employeeList.get(3).equals(tholerus)); + assertTrue(employeeList.get(4).equals(vahlman)); } /** @@ -163,12 +167,12 @@ public class TestSupervisor { @Rollback public void findSupervisorKeywords() { List<Employee> employeeList = new ArrayList<Employee>(); - Employee larsson = getEmployee("Ken", "Larsson", "kenlars@dsv.su.se"); - Employee hallberg = getEmployee("David", "Hallberg", "dhallb@dsv.su.se"); - Employee tholerus = getEmployee("Torgny", "Tholerus", "torgny@dsv.su.se"); - Employee herder = getEmployee("Niklas", "Herder", "herder@dsv.su.se"); - Employee moattar = getEmployee("Golrokh", "Moattar", "goli@dsv.su.se"); - Employee friis = getEmployee("Fredrik", "Friis", "fre-fri@dsv.su.se"); + Employee larsson = getEmployee("Ken", "Larsson", "kenlars@dsv.su.se", null); + Employee hallberg = getEmployee("David", "Hallberg", "dhallb@dsv.su.se", null); + Employee tholerus = getEmployee("Torgny", "Tholerus", "torgny@dsv.su.se", null); + Employee herder = getEmployee("Niklas", "Herder", "herder@dsv.su.se", null); + Employee moattar = getEmployee("Golrokh", "Moattar", "goli@dsv.su.se", null); + Employee friis = getEmployee("Fredrik", "Friis", "fre-fri@dsv.su.se", null); Keyword keyword = createKeyword(keywordTypeWord, "JUnit", false); herder.getKeywords().getAll().add(keyword);