From 9fe8659bfce3e702ae7a91f389ab73495cd2385c Mon Sep 17 00:00:00 2001 From: Tom Vahlman <tom@dsv.su.se> Date: Fri, 6 Apr 2012 14:17:21 +0200 Subject: [PATCH] Just added a simple test with a JPAQuery. --- .../serviceimpls/SupervisorServiceImpl.java | 18 ++++++++++++++++++ .../springdata/services/SupervisorService.java | 2 ++ .../dsv/scipro/springdata/TestSupervisor.java | 16 ++++++++++++++++ 3 files changed, 36 insertions(+) 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 9041daecb2..183793d694 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,14 +1,21 @@ package se.su.dsv.scipro.springdata.serviceimpls; +import com.mysema.query.jpa.impl.JPAQuery; +import com.mysema.query.types.Predicate; +import com.mysema.query.types.Visitor; +import com.mysema.query.types.expr.BooleanExpression; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import se.su.dsv.scipro.data.dataobjects.Employee; +import se.su.dsv.scipro.data.dataobjects.QEmployee; import se.su.dsv.scipro.springdata.repos.SupervisorRepo; import se.su.dsv.scipro.springdata.services.SupervisorService; import javax.annotation.Resource; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; import java.util.List; @@ -20,6 +27,11 @@ public class SupervisorServiceImpl extends AbstractQueryService<Employee, Long> @Resource private SupervisorRepo supervisorRepo; + + @PersistenceContext + private EntityManager em; + + @Autowired public SupervisorServiceImpl(@Qualifier("supervisorRepo") SupervisorRepo supervisorRepo) { super(supervisorRepo, supervisorRepo); @@ -31,4 +43,10 @@ public class SupervisorServiceImpl extends AbstractQueryService<Employee, Long> return supervisorRepo.findAll(orders); } + @Override + public List<Employee> findByUsersName() { QEmployee employee = QEmployee.employee; + BooleanExpression lastName = employee.user.lastName.eq("Vahlman"); + return new JPAQuery(em).from(employee).where(lastName).list(employee); + } + } diff --git a/src/main/java/se/su/dsv/scipro/springdata/services/SupervisorService.java b/src/main/java/se/su/dsv/scipro/springdata/services/SupervisorService.java index 439d9e1c97..20347695d6 100644 --- a/src/main/java/se/su/dsv/scipro/springdata/services/SupervisorService.java +++ b/src/main/java/se/su/dsv/scipro/springdata/services/SupervisorService.java @@ -9,4 +9,6 @@ import java.util.List; */ public interface SupervisorService extends CrudService<Employee,Long>, QueryService<Employee, Long> { public List<Employee> findAllEmployees(org.springframework.data.domain.Sort orders); + + public List<Employee> findByUsersName(); } 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 609726cba9..476bd29a2e 100644 --- a/src/test/java/se/su/dsv/scipro/springdata/TestSupervisor.java +++ b/src/test/java/se/su/dsv/scipro/springdata/TestSupervisor.java @@ -133,6 +133,22 @@ public class TestSupervisor { assertTrue(employeeList.get(5).equals(tholerus)); } + + /** + * Test for implementing a supervisorService with Spring Data + */ + @Test + @Transactional + @Rollback + public void findEmployeeByName() { + List<Employee> employeeList = new ArrayList<Employee>(); + Employee vahlman = getEmployee("Tom", "Vahlman", "tom@dsv.su.se"); + vahlman = supervisorService.save(vahlman); + employeeList.addAll(supervisorService.findByUsersName()); + assertFalse(employeeList.isEmpty()); + assertTrue(employeeList.get(0).equals(vahlman)); + } + /** * Test for implementing a supervisorService with Spring Data */