Envers extension of the Spring Data JPA module
Java
Clone or download
Pull request Compare This branch is 6 commits ahead, 101 commits behind spring-projects:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
etc
src
.gitignore
pom.xml
readme.md

readme.md

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 extend 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.