Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.home.ln_spring.ch10.service.springjpa; import com.google.common.collect.Lists; import com.home.ln_spring.ch10.domain.ContactAudit; import com.home.ln_spring.ch10.repository.ContactAuditRepository; import com.home.ln_spring.ch10.service.ContactAuditService; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import org.hibernate.envers.AuditReader; import org.hibernate.envers.AuditReaderFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; /** * * @author vitaliy */ @Service("contactAuditService") @Repository @Transactional public class ContactAuditServiceImpl implements ContactAuditService { @Autowired private ContactAuditRepository contactAuditRepository; @PersistenceContext private EntityManager entityManager; @Override @Transactional(readOnly = true) public List<ContactAudit> findAll() { return Lists.newArrayList(contactAuditRepository.findAll()); } @Override public ContactAudit findById(Long id) { return contactAuditRepository.findOne(id); } @Override public ContactAudit save(ContactAudit contact) { return contactAuditRepository.save(contact); } @Override @Transactional(readOnly = true) public ContactAudit findAuditByRevision(Long id, int revision) { AuditReader auditReader = AuditReaderFactory.get(entityManager); return auditReader.find(ContactAudit.class, id, revision); } }