Just added a simple test with a JPAQuery.

This commit is contained in:
Tom Vahlman 2012-04-06 14:17:21 +02:00
parent 7c1a00aeec
commit 9fe8659bfc
3 changed files with 36 additions and 0 deletions
src
main/java/se/su/dsv/scipro/springdata
test/java/se/su/dsv/scipro/springdata

@ -1,14 +1,21 @@
package se.su.dsv.scipro.springdata.serviceimpls; 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.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import se.su.dsv.scipro.data.dataobjects.Employee; 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.repos.SupervisorRepo;
import se.su.dsv.scipro.springdata.services.SupervisorService; import se.su.dsv.scipro.springdata.services.SupervisorService;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.util.List; import java.util.List;
@ -20,6 +27,11 @@ public class SupervisorServiceImpl extends AbstractQueryService<Employee, Long>
@Resource @Resource
private SupervisorRepo supervisorRepo; private SupervisorRepo supervisorRepo;
@PersistenceContext
private EntityManager em;
@Autowired @Autowired
public SupervisorServiceImpl(@Qualifier("supervisorRepo") SupervisorRepo supervisorRepo) { public SupervisorServiceImpl(@Qualifier("supervisorRepo") SupervisorRepo supervisorRepo) {
super(supervisorRepo, supervisorRepo); super(supervisorRepo, supervisorRepo);
@ -31,4 +43,10 @@ public class SupervisorServiceImpl extends AbstractQueryService<Employee, Long>
return supervisorRepo.findAll(orders); 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);
}
} }

@ -9,4 +9,6 @@ import java.util.List;
*/ */
public interface SupervisorService extends CrudService<Employee,Long>, QueryService<Employee, Long> { public interface SupervisorService extends CrudService<Employee,Long>, QueryService<Employee, Long> {
public List<Employee> findAllEmployees(org.springframework.data.domain.Sort orders); public List<Employee> findAllEmployees(org.springframework.data.domain.Sort orders);
public List<Employee> findByUsersName();
} }

@ -133,6 +133,22 @@ public class TestSupervisor {
assertTrue(employeeList.get(5).equals(tholerus)); 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 * Test for implementing a supervisorService with Spring Data
*/ */