public class ContactServiceImpl implements ContactService {
@Autowired
private ContactRepository contactRepository;
@Transactional(readOnly=true)
public List<Contact> findAll() {
return Lists.newArrayList(contactRepository.findAll());
}
@Transactional(readOnly=true)
public List<Contact> findByFirstName(String firstName) {
return contactRepository.findByFirstName(firstName);
}
@Transactional(readOnly=true)
public List<Contact> findByFirstNameAndLastName(
String firstName, String lastName) {
return contactRepository.findByFirstNameAndLastName(
firstName, lastName);
}
}
You can see that instead of the EntityManager, we just need to inject the ContactRepository interface
into the service class, and Spring Data JPA will do all the dirty work for us. Listing 10-35 shows the testing
program.
Listing 10-35. The SpringJpaSample Class
package com.apress.prospring3.ch10;
// Import statements omitted
public class SpringJpaSample {
public static void main(String[] args) {
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
ctx.load("classpath:spring-data-app-context.xml");
ctx.refresh();
ContactService contactService = ctx.getBean(
"springJpaContactService", ContactService.class);
// Find all contacts
List<Contact> contacts = contactService.findAll();
listContacts(contacts);
// Find contacts by first name
contacts = contactService.findByFirstName("Clarence");
listContacts(contacts);
// Find contacts by first name and last name
contacts = contactService.findByFirstNameAndLastName("Clarence", "Ho");
Search WWH :
Custom Search
Previous Page
Spring Framework 3 Topic Index
Next Page
Spring Framework 3 Bookmarks
Home