diff --git a/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryFactoryBean.java b/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryFactoryBean.java index d6d0194..6acb6ec 100755 --- a/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryFactoryBean.java +++ b/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryFactoryBean.java @@ -15,6 +15,8 @@ */ package org.springframework.data.envers.repository.support; +import java.util.Optional; + import javax.persistence.EntityManager; import org.hibernate.envers.DefaultRevisionEntity; @@ -25,6 +27,7 @@ import org.springframework.data.jpa.repository.support.JpaRepositoryFactory; import org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean; import org.springframework.data.repository.core.RepositoryInformation; import org.springframework.data.repository.core.RepositoryMetadata; +import org.springframework.data.repository.core.support.RepositoryComposition.RepositoryFragments; import org.springframework.data.repository.core.support.RepositoryFactorySupport; import org.springframework.data.repository.history.RevisionRepository; import org.springframework.data.repository.history.support.RevisionEntityInformation; @@ -75,7 +78,6 @@ public class EnversRevisionRepositoryFactoryBean> extends JpaRepositoryFactory { private final RevisionEntityInformation revisionEntityInformation; - private final EntityManager entityManager; /** * Creates a new {@link RevisionRepositoryFactory} using the given {@link EntityManager} and revision entity class. @@ -86,10 +88,11 @@ public class EnversRevisionRepositoryFactoryBean revisionEntityClass) { super(entityManager); - this.entityManager = entityManager; - revisionEntityClass = revisionEntityClass == null ? DefaultRevisionEntity.class : revisionEntityClass; - this.revisionEntityInformation = DefaultRevisionEntity.class.equals(revisionEntityClass) - ? new DefaultRevisionEntityInformation() : new ReflectionRevisionEntityInformation(revisionEntityClass); + + this.revisionEntityInformation = Optional.ofNullable(revisionEntityClass) // + .filter(it -> !it.equals(DefaultRevisionEntity.class))// + . map(ReflectionRevisionEntityInformation::new) // + .orElseGet(DefaultRevisionEntityInformation::new); } /* @@ -118,11 +121,11 @@ public class EnversRevisionRepositoryFactoryBean T getRepository(Class repositoryInterface, Object customImplementation) { + public T getRepository(Class repositoryInterface, RepositoryFragments fragments) { if (RevisionRepository.class.isAssignableFrom(repositoryInterface)) { @@ -138,7 +141,7 @@ public class EnversRevisionRepositoryFactoryBean