Spring 4.0.9 -> 4.1.8 Spring Data JPA 1.9.0 -> 1.9.1 Slf4j 1.7.10 -> 1.7.13 Hibernate Envers 4.3.9 -> 4.3.11 JodaTime 2.1 -> 2.8.2 JUnit 4.11 -> 4.12 Log4j 1.2.16 -> 1.2.17
Spring Data Envers
This project is an extension of the Spring Data JPA project to allow access to entity revisions managed by Hibernate Envers. The sources mostly originate from a contribution of Philipp Hügelmeyer @hygl.
The core feature of the module consists of an implementation of the RevisionRepository of Spring Data Commons.
public interface RevisionRepository<T, ID extends Serializable, N extends Number & Comparable<N>> {
Revision<N, T> findLastChangeRevision(ID id);
Revisions<N, T> findRevisions(ID id);
Page<Revision<N, T>> findRevisions(ID id, Pageable pageable);
}
You can pull in this functionality to your repositories by simply additionally extending the interface just mentioned:
interface PersonRepository extends RevisionRepository<Person, Long, Integer>, CrudRepository<Person, Long> {
// Your query methods go here
}
To successfully activate the Spring Data Envers repository factory use the Spring Data JPA repositories namespace element's factory-class attribute:
<jpa:repositories base-package="com.acme.repositories"
factory-class="….EnversRevisionRepositoryFactoryBean" />
Contributing to the project
If you're an Eclipse user make sure you activate automatic application of the formatter (located at etc/eclipse-formatter.xml) and activate automatic formatting and organizing imports on save.