#1 - Avoid lookup of entities if no revision numbers found.
We now eagerly return an empty Revisions instance in case we don't find revision numbers for an entity with a given ID. Not doing so caused issues with database vendors as they might expect at least a single revision number.
This commit is contained in:
committed by
Oliver Gierke
parent
ac6d3eab8d
commit
26a51e5210
@@ -114,7 +114,8 @@ public class EnversRevisionRepositoryImpl<T, ID extends Serializable, N extends
|
||||
AuditReader reader = AuditReaderFactory.get(entityManager);
|
||||
List<? extends Number> revisionNumbers = reader.getRevisions(type, id);
|
||||
|
||||
return getEntitiesForRevisions((List<N>) revisionNumbers, id, reader);
|
||||
return revisionNumbers.isEmpty() ? new Revisions<N, T>(Collections.EMPTY_LIST) : getEntitiesForRevisions(
|
||||
(List<N>) revisionNumbers, id, reader);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
package org.springframework.data.envers.repository.support;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.*;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
@@ -102,4 +102,9 @@ public class RepositoryIntegrationTest {
|
||||
Revisions<Integer, License> wrapper = new Revisions<Integer, License>(revisions.getContent());
|
||||
assertThat(wrapper.getLatestRevision(), is(revision));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void returnsEmptyRevisionsForUnrevisionedEntity() {
|
||||
assertThat(countryRepository.findRevisions(100L).getContent(), is(hasSize(0)));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user