diff --git a/src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java b/src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java index 67739f842..5e92161b7 100644 --- a/src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java +++ b/src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java @@ -18,7 +18,6 @@ package org.springframework.data.jpa.provider; import static org.springframework.data.jpa.provider.JpaClassUtils.*; import static org.springframework.data.jpa.provider.PersistenceProvider.Constants.*; -import java.util.Collection; import java.util.Collections; import java.util.NoSuchElementException; @@ -94,16 +93,6 @@ public enum PersistenceProvider implements QueryExtractor, ProxyIdAccessor { return ((HibernateProxy) entity).getHibernateLazyInitializer().getIdentifier(); } - /* - * (non-Javadoc) - * @see org.springframework.data.jpa.provider.PersistenceProvider#potentiallyConvertEmptyCollection(java.util.Collection) - */ - @Nullable - @Override - public Collection potentiallyConvertEmptyCollection(@Nullable Collection collection) { - return collection == null || collection.isEmpty() ? null : collection; - } - /* * (non-Javadoc) * @see org.springframework.data.jpa.provider.PersistenceProvider#executeQueryWithResultStream(javax.persistence.Query) @@ -144,16 +133,6 @@ public enum PersistenceProvider implements QueryExtractor, ProxyIdAccessor { return null; } - /* - * (non-Javadoc) - * @see org.springframework.data.jpa.provider.PersistenceProvider#potentiallyConvertEmptyCollection(java.util.Collection) - */ - @Nullable - @Override - public Collection potentiallyConvertEmptyCollection(@Nullable Collection collection) { - return collection == null || collection.isEmpty() ? null : collection; - } - /* * (non-Javadoc) * @see org.springframework.data.jpa.provider.PersistenceProvider#executeQueryWithResultStream(javax.persistence.Query) @@ -209,7 +188,8 @@ public enum PersistenceProvider implements QueryExtractor, ProxyIdAccessor { }; static ConcurrentReferenceHashMap, PersistenceProvider> CACHE = new ConcurrentReferenceHashMap<>(); - + private final Iterable entityManagerClassNames; + private final Iterable metamodelClassNames; /** * Creates a new {@link PersistenceProvider}. * @@ -223,9 +203,6 @@ public enum PersistenceProvider implements QueryExtractor, ProxyIdAccessor { this.metamodelClassNames = metamodelClassNames; } - private final Iterable entityManagerClassNames; - private final Iterable metamodelClassNames; - /** * Caches the given {@link PersistenceProvider} for the given source type. * @@ -314,19 +291,6 @@ public enum PersistenceProvider implements QueryExtractor, ProxyIdAccessor { return true; } - /** - * Potentially converts an empty collection to the appropriate representation of this {@link PersistenceProvider}, - * since some JPA providers cannot correctly handle empty collections. - * - * @see DATAJPA-606 - * @param collection The collection to be converted. May be {@code null}. - * @return a potentially converted collection. May be {@code null}. - */ - @Nullable - public Collection potentiallyConvertEmptyCollection(@Nullable Collection collection) { - return collection; - } - /** * Holds the PersistenceProvider specific interface names. * diff --git a/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryLookupStrategy.java b/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryLookupStrategy.java index bbe257008..317ce7484 100644 --- a/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryLookupStrategy.java +++ b/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryLookupStrategy.java @@ -19,7 +19,6 @@ import java.lang.reflect.Method; import javax.persistence.EntityManager; -import org.springframework.data.jpa.provider.PersistenceProvider; import org.springframework.data.jpa.provider.QueryExtractor; import org.springframework.data.jpa.repository.Query; import org.springframework.data.projection.ProjectionFactory; @@ -95,20 +94,19 @@ public final class JpaQueryLookupStrategy { */ private static class CreateQueryLookupStrategy extends AbstractQueryLookupStrategy { - private final PersistenceProvider persistenceProvider; private final EscapeCharacter escape; public CreateQueryLookupStrategy(EntityManager em, QueryExtractor extractor, EscapeCharacter escape, JpaQueryMethodFactory queryMethodFactory) { super(em, extractor, queryMethodFactory); - this.persistenceProvider = PersistenceProvider.fromEntityManager(em); + this.escape = escape; } @Override protected RepositoryQuery resolveQuery(JpaQueryMethod method, EntityManager em, NamedQueries namedQueries) { - return new PartTreeJpaQuery(method, em, persistenceProvider, escape); + return new PartTreeJpaQuery(method, em, escape); } } @@ -118,6 +116,7 @@ public final class JpaQueryLookupStrategy { * * @author Oliver Gierke * @author Thomas Darimont + * @author Jens Schauder */ private static class DeclaredQueryLookupStrategy extends AbstractQueryLookupStrategy { diff --git a/src/main/java/org/springframework/data/jpa/repository/query/ParameterMetadataProvider.java b/src/main/java/org/springframework/data/jpa/repository/query/ParameterMetadataProvider.java index 6743de985..d324bf477 100644 --- a/src/main/java/org/springframework/data/jpa/repository/query/ParameterMetadataProvider.java +++ b/src/main/java/org/springframework/data/jpa/repository/query/ParameterMetadataProvider.java @@ -57,22 +57,19 @@ class ParameterMetadataProvider { private final Iterator parameters; private final List> expressions; private final @Nullable Iterator bindableParameterValues; - private final PersistenceProvider persistenceProvider; private final EscapeCharacter escape; /** * Creates a new {@link ParameterMetadataProvider} from the given {@link CriteriaBuilder} and - * {@link ParametersParameterAccessor} with support for parameter value customizations via {@link PersistenceProvider} - * . + * {@link ParametersParameterAccessor}. * * @param builder must not be {@literal null}. * @param accessor must not be {@literal null}. - * @param provider must not be {@literal null}. - * @param escape + * @param escape must not be {@literal null}. */ public ParameterMetadataProvider(CriteriaBuilder builder, ParametersParameterAccessor accessor, - PersistenceProvider provider, EscapeCharacter escape) { - this(builder, accessor.iterator(), accessor.getParameters(), provider, escape); + EscapeCharacter escape) { + this(builder, accessor.iterator(), accessor.getParameters(), escape); } /** @@ -81,37 +78,32 @@ class ParameterMetadataProvider { * * @param builder must not be {@literal null}. * @param parameters must not be {@literal null}. - * @param provider must not be {@literal null}. - * @param escape + * @param escape must not be {@literal null}. */ - public ParameterMetadataProvider(CriteriaBuilder builder, Parameters parameters, PersistenceProvider provider, - EscapeCharacter escape) { - this(builder, null, parameters, provider, escape); + public ParameterMetadataProvider(CriteriaBuilder builder, Parameters parameters, EscapeCharacter escape) { + this(builder, null, parameters, escape); } /** * Creates a new {@link ParameterMetadataProvider} from the given {@link CriteriaBuilder} an {@link Iterable} of all - * bindable parameter values, and {@link Parameters} with support for parameter value customizations via - * {@link PersistenceProvider}. + * bindable parameter values, and {@link Parameters}. * * @param builder must not be {@literal null}. * @param bindableParameterValues may be {@literal null}. * @param parameters must not be {@literal null}. - * @param provider must not be {@literal null}. - * @param escape + * @param escape must not be {@literal null}. */ private ParameterMetadataProvider(CriteriaBuilder builder, @Nullable Iterator bindableParameterValues, - Parameters parameters, PersistenceProvider provider, EscapeCharacter escape) { + Parameters parameters, EscapeCharacter escape) { Assert.notNull(builder, "CriteriaBuilder must not be null!"); Assert.notNull(parameters, "Parameters must not be null!"); - Assert.notNull(provider, "PesistenceProvider must not be null!"); + Assert.notNull(escape, "EscapeCharacter must not be null!"); this.builder = builder; this.parameters = parameters.getBindableParameters().iterator(); this.expressions = new ArrayList<>(); this.bindableParameterValues = bindableParameterValues; - this.persistenceProvider = provider; this.escape = escape; } @@ -140,7 +132,7 @@ class ParameterMetadataProvider { * Builds a new {@link ParameterMetadata} of the given {@link Part} and type. Forwards the underlying * {@link Parameters} as well. * - * @param is the type parameter of the returend {@link ParameterMetadata}. + * @param is the type parameter of the returned {@link ParameterMetadata}. * @param type must not be {@literal null}. * @return ParameterMetadata for the next parameter. */ @@ -180,7 +172,7 @@ class ParameterMetadataProvider { Object value = bindableParameterValues == null ? ParameterMetadata.PLACEHOLDER : bindableParameterValues.next(); - ParameterMetadata metadata = new ParameterMetadata<>(expression, part, value, persistenceProvider, escape); + ParameterMetadata metadata = new ParameterMetadata<>(expression, part, value, escape); expressions.add(metadata); return metadata; @@ -202,7 +194,6 @@ class ParameterMetadataProvider { private final Type type; private final ParameterExpression expression; - private final PersistenceProvider persistenceProvider; private final EscapeCharacter escape; private final boolean ignoreCase; @@ -210,10 +201,9 @@ class ParameterMetadataProvider { * Creates a new {@link ParameterMetadata}. */ public ParameterMetadata(ParameterExpression expression, Part part, @Nullable Object value, - PersistenceProvider provider, EscapeCharacter escape) { + EscapeCharacter escape) { this.expression = expression; - this.persistenceProvider = provider; this.type = value == null && Type.SIMPLE_PROPERTY.equals(part.getType()) ? Type.IS_NULL : part.getType(); this.ignoreCase = IgnoreCaseType.ALWAYS.equals(part.shouldIgnoreCase()); this.escape = escape; @@ -263,7 +253,7 @@ class ParameterMetadataProvider { } return Collection.class.isAssignableFrom(expressionType) // - ? persistenceProvider.potentiallyConvertEmptyCollection(upperIfIgnoreCase(ignoreCase, toCollection(value))) // + ? upperIfIgnoreCase(ignoreCase, toCollection(value)) // : value; } @@ -283,11 +273,15 @@ class ParameterMetadataProvider { } if (value instanceof Collection) { - return (Collection) value; + + Collection collection = (Collection) value; + return collection.isEmpty() ? null : collection; } if (ObjectUtils.isArray(value)) { - return Arrays.asList(ObjectUtils.toObjectArray(value)); + + List collection = Arrays.asList(ObjectUtils.toObjectArray(value)); + return collection.isEmpty() ? null : collection; } return Collections.singleton(value); diff --git a/src/main/java/org/springframework/data/jpa/repository/query/PartTreeJpaQuery.java b/src/main/java/org/springframework/data/jpa/repository/query/PartTreeJpaQuery.java index 6e7c0c632..30c8d671e 100644 --- a/src/main/java/org/springframework/data/jpa/repository/query/PartTreeJpaQuery.java +++ b/src/main/java/org/springframework/data/jpa/repository/query/PartTreeJpaQuery.java @@ -24,7 +24,6 @@ import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import org.springframework.data.domain.Sort; -import org.springframework.data.jpa.provider.PersistenceProvider; import org.springframework.data.jpa.repository.query.JpaParameters.JpaParameter; import org.springframework.data.jpa.repository.query.JpaQueryExecution.DeleteExecution; import org.springframework.data.jpa.repository.query.JpaQueryExecution.ExistsExecution; @@ -62,10 +61,9 @@ public class PartTreeJpaQuery extends AbstractJpaQuery { * * @param method must not be {@literal null}. * @param em must not be {@literal null}. - * @param persistenceProvider must not be {@literal null}. */ - PartTreeJpaQuery(JpaQueryMethod method, EntityManager em, PersistenceProvider persistenceProvider) { - this(method, em, persistenceProvider, EscapeCharacter.DEFAULT); + PartTreeJpaQuery(JpaQueryMethod method, EntityManager em) { + this(method, em, EscapeCharacter.DEFAULT); } /** @@ -73,11 +71,9 @@ public class PartTreeJpaQuery extends AbstractJpaQuery { * * @param method must not be {@literal null}. * @param em must not be {@literal null}. - * @param persistenceProvider must not be {@literal null}. * @param escape character used for escaping characters used as patterns in LIKE-expressions. */ - PartTreeJpaQuery(JpaQueryMethod method, EntityManager em, PersistenceProvider persistenceProvider, - EscapeCharacter escape) { + PartTreeJpaQuery(JpaQueryMethod method, EntityManager em, EscapeCharacter escape) { super(method, em); @@ -92,8 +88,8 @@ public class PartTreeJpaQuery extends AbstractJpaQuery { this.tree = new PartTree(method.getName(), domainClass); validate(tree, parameters, method.toString()); - this.countQuery = new CountQueryPreparer(persistenceProvider, recreationRequired); - this.query = tree.isCountProjection() ? countQuery : new QueryPreparer(persistenceProvider, recreationRequired); + this.countQuery = new CountQueryPreparer(recreationRequired); + this.query = tree.isCountProjection() ? countQuery : new QueryPreparer(recreationRequired); } catch (Exception o_O) { throw new IllegalArgumentException( @@ -208,14 +204,11 @@ public class PartTreeJpaQuery extends AbstractJpaQuery { private final @Nullable CriteriaQuery cachedCriteriaQuery; private final @Nullable ParameterBinder cachedParameterBinder; - private final PersistenceProvider persistenceProvider; private final QueryParameterSetter.QueryMetadataCache metadataCache = new QueryParameterSetter.QueryMetadataCache(); - QueryPreparer(PersistenceProvider persistenceProvider, boolean recreateQueries) { + QueryPreparer(boolean recreateQueries) { - this.persistenceProvider = persistenceProvider; - - JpaQueryCreator creator = createCreator(persistenceProvider, null); + JpaQueryCreator creator = createCreator(null); if (recreateQueries) { this.cachedCriteriaQuery = null; @@ -235,7 +228,7 @@ public class PartTreeJpaQuery extends AbstractJpaQuery { ParameterBinder parameterBinder = cachedParameterBinder; if (cachedCriteriaQuery == null || accessor.hasBindableNullValue()) { - JpaQueryCreator creator = createCreator(persistenceProvider, accessor); + JpaQueryCreator creator = createCreator(accessor); criteriaQuery = creator.createQuery(getDynamicSort(accessor)); List> expressions = creator.getParameterExpressions(); parameterBinder = getBinder(expressions); @@ -254,6 +247,7 @@ public class PartTreeJpaQuery extends AbstractJpaQuery { * Restricts the max results of the given {@link Query} if the current {@code tree} marks this {@code query} as * limited. */ + @SuppressWarnings("ConstantConditions") private Query restrictMaxResultsIfNecessary(Query query) { if (tree.isLimiting()) { @@ -298,8 +292,7 @@ public class PartTreeJpaQuery extends AbstractJpaQuery { return getEntityManager().createQuery(criteriaQuery); } - protected JpaQueryCreator createCreator(PersistenceProvider persistenceProvider, - @Nullable JpaParametersParameterAccessor accessor) { + protected JpaQueryCreator createCreator(@Nullable JpaParametersParameterAccessor accessor) { EntityManager entityManager = getEntityManager(); @@ -310,10 +303,10 @@ public class PartTreeJpaQuery extends AbstractJpaQuery { ReturnedType returnedType; if (accessor != null) { - provider = new ParameterMetadataProvider(builder, accessor, persistenceProvider, escape); + provider = new ParameterMetadataProvider(builder, accessor, escape); returnedType = processor.withDynamicProjection(accessor).getReturnedType(); } else { - provider = new ParameterMetadataProvider(builder, parameters, persistenceProvider, escape); + provider = new ParameterMetadataProvider(builder, parameters, escape); returnedType = processor.getReturnedType(); } @@ -351,13 +344,12 @@ public class PartTreeJpaQuery extends AbstractJpaQuery { */ private class CountQueryPreparer extends QueryPreparer { - CountQueryPreparer(PersistenceProvider persistenceProvider, boolean recreateQueries) { - super(persistenceProvider, recreateQueries); + CountQueryPreparer(boolean recreateQueries) { + super(recreateQueries); } @Override - protected JpaQueryCreator createCreator(PersistenceProvider persistenceProvider, - @Nullable JpaParametersParameterAccessor accessor) { + protected JpaQueryCreator createCreator(@Nullable JpaParametersParameterAccessor accessor) { EntityManager entityManager = getEntityManager(); CriteriaBuilder builder = entityManager.getCriteriaBuilder(); @@ -365,9 +357,9 @@ public class PartTreeJpaQuery extends AbstractJpaQuery { ParameterMetadataProvider provider; if (accessor != null) { - provider = new ParameterMetadataProvider(builder, accessor, persistenceProvider, escape); + provider = new ParameterMetadataProvider(builder, accessor, escape); } else { - provider = new ParameterMetadataProvider(builder, parameters, persistenceProvider, escape); + provider = new ParameterMetadataProvider(builder, parameters, escape); } return new JpaCountQueryCreator(tree, getQueryMethod().getResultProcessor().getReturnedType(), builder, provider); diff --git a/src/test/java/org/springframework/data/jpa/repository/query/JpaCountQueryCreatorIntegrationTests.java b/src/test/java/org/springframework/data/jpa/repository/query/JpaCountQueryCreatorIntegrationTests.java index 94e77ae01..0eff10864 100644 --- a/src/test/java/org/springframework/data/jpa/repository/query/JpaCountQueryCreatorIntegrationTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/query/JpaCountQueryCreatorIntegrationTests.java @@ -60,7 +60,7 @@ public class JpaCountQueryCreatorIntegrationTests { PartTree tree = new PartTree("findDistinctByRolesIn", User.class); ParameterMetadataProvider metadataProvider = new ParameterMetadataProvider(entityManager.getCriteriaBuilder(), - queryMethod.getParameters(), provider, EscapeCharacter.DEFAULT); + queryMethod.getParameters(), EscapeCharacter.DEFAULT); JpaCountQueryCreator creator = new JpaCountQueryCreator(tree, queryMethod.getResultProcessor().getReturnedType(), entityManager.getCriteriaBuilder(), metadataProvider); diff --git a/src/test/java/org/springframework/data/jpa/repository/query/ParameterExpressionProviderTests.java b/src/test/java/org/springframework/data/jpa/repository/query/ParameterExpressionProviderTests.java index 57fe6d0b0..5a557d4fe 100644 --- a/src/test/java/org/springframework/data/jpa/repository/query/ParameterExpressionProviderTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/query/ParameterExpressionProviderTests.java @@ -27,7 +27,6 @@ import javax.persistence.criteria.ParameterExpression; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.data.jpa.domain.sample.User; -import org.springframework.data.jpa.provider.PersistenceProvider; import org.springframework.data.repository.query.DefaultParameters; import org.springframework.data.repository.query.Parameters; import org.springframework.data.repository.query.ParametersParameterAccessor; @@ -57,10 +56,9 @@ public class ParameterExpressionProviderTests { Part part = new Part("IdGreaterThan", User.class); CriteriaBuilder builder = em.getCriteriaBuilder(); - PersistenceProvider persistenceProvider = PersistenceProvider.fromEntityManager(em); - ParameterMetadataProvider provider = new ParameterMetadataProvider(builder, accessor, persistenceProvider, - EscapeCharacter.DEFAULT); + ParameterMetadataProvider provider = new ParameterMetadataProvider(builder, accessor, EscapeCharacter.DEFAULT); ParameterExpression expression = provider.next(part, Comparable.class).getExpression(); + assertThat(expression.getParameterType()).isEqualTo(int.class); } diff --git a/src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderIntegrationTests.java b/src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderIntegrationTests.java index ebfe60eeb..6a78f2133 100644 --- a/src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderIntegrationTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderIntegrationTests.java @@ -26,7 +26,6 @@ import javax.persistence.PersistenceContext; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.data.jpa.domain.sample.User; -import org.springframework.data.jpa.provider.PersistenceProvider; import org.springframework.data.jpa.repository.query.ParameterMetadataProvider.ParameterMetadata; import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.Parameters; @@ -80,8 +79,7 @@ public class ParameterMetadataProviderIntegrationTests { JpaParameters parameters = new JpaParameters(method); simulateDiscoveredParametername(parameters); - return new ParameterMetadataProvider(em.getCriteriaBuilder(), parameters, - PersistenceProvider.fromEntityManager(em), EscapeCharacter.DEFAULT); + return new ParameterMetadataProvider(em.getCriteriaBuilder(), parameters, EscapeCharacter.DEFAULT); } @SuppressWarnings({ "unchecked", "ConstantConditions" }) diff --git a/src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderUnitTests.java b/src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderUnitTests.java index 396ad50ae..80b403ba3 100644 --- a/src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderUnitTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/query/ParameterMetadataProviderUnitTests.java @@ -23,7 +23,6 @@ import java.util.Collections; import javax.persistence.criteria.CriteriaBuilder; import org.junit.Test; -import org.springframework.data.jpa.provider.PersistenceProvider; import org.springframework.data.repository.query.Parameters; import org.springframework.data.repository.query.parser.Part; @@ -37,18 +36,17 @@ public class ParameterMetadataProviderUnitTests { @Test // DATAJPA-863 public void errorMessageMentionesParametersWhenParametersAreExhausted() { - PersistenceProvider persistenceProvider = mock(PersistenceProvider.class); CriteriaBuilder builder = mock(CriteriaBuilder.class); Parameters parameters = mock(Parameters.class, RETURNS_DEEP_STUBS); when(parameters.getBindableParameters().iterator()).thenReturn(Collections.emptyListIterator()); ParameterMetadataProvider metadataProvider = new ParameterMetadataProvider(builder, parameters, - persistenceProvider, EscapeCharacter.DEFAULT); + EscapeCharacter.DEFAULT); assertThatExceptionOfType(RuntimeException.class) // .isThrownBy(() -> metadataProvider.next(mock(Part.class))) // - .withMessageContaining("parameter"); + .withMessageContaining("parameter"); } } diff --git a/src/test/java/org/springframework/data/jpa/repository/query/PartTreeJpaQueryIntegrationTests.java b/src/test/java/org/springframework/data/jpa/repository/query/PartTreeJpaQueryIntegrationTests.java index 2031d1560..572d8a5fc 100644 --- a/src/test/java/org/springframework/data/jpa/repository/query/PartTreeJpaQueryIntegrationTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/query/PartTreeJpaQueryIntegrationTests.java @@ -82,7 +82,7 @@ public class PartTreeJpaQueryIntegrationTests { public void test() throws Exception { JpaQueryMethod queryMethod = getQueryMethod("findByFirstname", String.class, Pageable.class); - PartTreeJpaQuery jpaQuery = new PartTreeJpaQuery(queryMethod, entityManager, provider); + PartTreeJpaQuery jpaQuery = new PartTreeJpaQuery(queryMethod, entityManager); jpaQuery.createQuery(getAccessor(queryMethod, new Object[] { "Matthews", PageRequest.of(0, 1) })); jpaQuery.createQuery((getAccessor(queryMethod, new Object[] { "Matthews", PageRequest.of(0, 1) }))); @@ -106,7 +106,7 @@ public class PartTreeJpaQueryIntegrationTests { public void recreatesQueryIfNullValueIsGiven() throws Exception { JpaQueryMethod queryMethod = getQueryMethod("findByFirstname", String.class, Pageable.class); - PartTreeJpaQuery jpaQuery = new PartTreeJpaQuery(queryMethod, entityManager, provider); + PartTreeJpaQuery jpaQuery = new PartTreeJpaQuery(queryMethod, entityManager); Query query = jpaQuery.createQuery((getAccessor(queryMethod, new Object[] { "Matthews", PageRequest.of(0, 1) }))); @@ -121,7 +121,7 @@ public class PartTreeJpaQueryIntegrationTests { public void shouldLimitExistsProjectionQueries() throws Exception { JpaQueryMethod queryMethod = getQueryMethod("existsByFirstname", String.class); - PartTreeJpaQuery jpaQuery = new PartTreeJpaQuery(queryMethod, entityManager, provider); + PartTreeJpaQuery jpaQuery = new PartTreeJpaQuery(queryMethod, entityManager); Query query = jpaQuery.createQuery((getAccessor(queryMethod, new Object[] { "Matthews" }))); @@ -132,7 +132,7 @@ public class PartTreeJpaQueryIntegrationTests { public void shouldSelectAliasedIdForExistsProjectionQueries() throws Exception { JpaQueryMethod queryMethod = getQueryMethod("existsByFirstname", String.class); - PartTreeJpaQuery jpaQuery = new PartTreeJpaQuery(queryMethod, entityManager, provider); + PartTreeJpaQuery jpaQuery = new PartTreeJpaQuery(queryMethod, entityManager); Query query = jpaQuery.createQuery((getAccessor(queryMethod, new Object[] { "Matthews" }))); @@ -143,7 +143,7 @@ public class PartTreeJpaQueryIntegrationTests { public void isEmptyCollection() throws Exception { JpaQueryMethod queryMethod = getQueryMethod("findByRolesIsEmpty"); - PartTreeJpaQuery jpaQuery = new PartTreeJpaQuery(queryMethod, entityManager, provider); + PartTreeJpaQuery jpaQuery = new PartTreeJpaQuery(queryMethod, entityManager); Query query = jpaQuery.createQuery((getAccessor(queryMethod, new Object[] {}))); @@ -154,7 +154,7 @@ public class PartTreeJpaQueryIntegrationTests { public void isNotEmptyCollection() throws Exception { JpaQueryMethod queryMethod = getQueryMethod("findByRolesIsNotEmpty"); - PartTreeJpaQuery jpaQuery = new PartTreeJpaQuery(queryMethod, entityManager, provider); + PartTreeJpaQuery jpaQuery = new PartTreeJpaQuery(queryMethod, entityManager); Query query = jpaQuery.createQuery((getAccessor(queryMethod, new Object[] {}))); @@ -165,7 +165,7 @@ public class PartTreeJpaQueryIntegrationTests { public void rejectsIsEmptyOnNonCollectionProperty() throws Exception { JpaQueryMethod method = getQueryMethod("findByFirstnameIsEmpty"); - AbstractJpaQuery jpaQuery = new PartTreeJpaQuery(method, entityManager, provider); + AbstractJpaQuery jpaQuery = new PartTreeJpaQuery(method, entityManager); jpaQuery.createQuery((getAccessor(method, new Object[] { "Oliver" }))); } @@ -176,7 +176,7 @@ public class PartTreeJpaQueryIntegrationTests { JpaQueryMethod method = getQueryMethod("findByIdIn", Integer.class); assertThatExceptionOfType(RuntimeException.class) // - .isThrownBy(() -> new PartTreeJpaQuery(method, entityManager, provider)) // + .isThrownBy(() -> new PartTreeJpaQuery(method, entityManager)) // .withMessageContaining("findByIdIn") // .withMessageContaining(" IN ") // .withMessageContaining("Collection") // @@ -189,7 +189,7 @@ public class PartTreeJpaQueryIntegrationTests { JpaQueryMethod method = getQueryMethod("findById", Collection.class); assertThatExceptionOfType(RuntimeException.class) // - .isThrownBy(() -> new PartTreeJpaQuery(method, entityManager, provider)) // + .isThrownBy(() -> new PartTreeJpaQuery(method, entityManager)) // .withMessageContaining("findById") // .withMessageContaining(" SIMPLE_PROPERTY ") // .withMessageContaining(" scalar ") // @@ -201,7 +201,7 @@ public class PartTreeJpaQueryIntegrationTests { JpaQueryMethod method = getQueryMethod("findByFirstnameIn", Iterable.class); - new PartTreeJpaQuery(method, entityManager, provider); + new PartTreeJpaQuery(method, entityManager); assertThat(method).isNotNull(); } @@ -212,7 +212,7 @@ public class PartTreeJpaQueryIntegrationTests { JpaQueryMethod method = getQueryMethod("findByFirstname"); assertThatExceptionOfType(IllegalArgumentException.class) // - .isThrownBy(() -> new PartTreeJpaQuery(method, entityManager, provider)) // + .isThrownBy(() -> new PartTreeJpaQuery(method, entityManager)) // .withMessageContaining("findByFirstname") // the method being analyzed .withMessageContaining(" firstname ") // the property we are looking for .withMessageContaining("UserRepository"); // the repository @@ -224,7 +224,7 @@ public class PartTreeJpaQueryIntegrationTests { JpaQueryMethod method = getQueryMethod("findByNoSuchProperty", String.class); assertThatExceptionOfType(IllegalArgumentException.class) // - .isThrownBy(() -> new PartTreeJpaQuery(method, entityManager, provider)) // + .isThrownBy(() -> new PartTreeJpaQuery(method, entityManager)) // .withMessageContaining("findByNoSuchProperty") // the method being analyzed .withMessageContaining(" noSuchProperty ") // the property we are looking for .withMessageContaining("UserRepository"); // the repository @@ -239,8 +239,7 @@ public class PartTreeJpaQueryIntegrationTests { } JpaQueryMethod queryMethod = getQueryMethod(methodName, parameterTypes); - PartTreeJpaQuery jpaQuery = new PartTreeJpaQuery(queryMethod, entityManager, - PersistenceProvider.fromEntityManager(entityManager)); + PartTreeJpaQuery jpaQuery = new PartTreeJpaQuery(queryMethod, entityManager); jpaQuery.createQuery((getAccessor(queryMethod, values))); }