diff --git a/pom.xml b/pom.xml
index dd336ca646..b2b487ac99 100755
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-jpa-parent
- 3.3.0-SNAPSHOT
+ 3.3.x-3410-SNAPSHOT
pom
Spring Data JPA Parent
diff --git a/spring-data-envers/pom.xml b/spring-data-envers/pom.xml
index 470678d048..7bb04f9ed5 100755
--- a/spring-data-envers/pom.xml
+++ b/spring-data-envers/pom.xml
@@ -5,12 +5,12 @@
org.springframework.data
spring-data-envers
- 3.3.0-SNAPSHOT
+ 3.3.x-3410-SNAPSHOT
org.springframework.data
spring-data-jpa-parent
- 3.3.0-SNAPSHOT
+ 3.3.x-3410-SNAPSHOT
../pom.xml
diff --git a/spring-data-jpa-distribution/pom.xml b/spring-data-jpa-distribution/pom.xml
index 6bd074181c..9d2eed1835 100644
--- a/spring-data-jpa-distribution/pom.xml
+++ b/spring-data-jpa-distribution/pom.xml
@@ -14,7 +14,7 @@
org.springframework.data
spring-data-jpa-parent
- 3.3.0-SNAPSHOT
+ 3.3.x-3410-SNAPSHOT
../pom.xml
diff --git a/spring-data-jpa/pom.xml b/spring-data-jpa/pom.xml
index 67ad4cabb2..f6138be568 100644
--- a/spring-data-jpa/pom.xml
+++ b/spring-data-jpa/pom.xml
@@ -6,7 +6,7 @@
org.springframework.data
spring-data-jpa
- 3.3.0-SNAPSHOT
+ 3.3.x-3410-SNAPSHOT
Spring Data JPA
Spring Data module for JPA repositories.
@@ -15,7 +15,7 @@
org.springframework.data
spring-data-jpa-parent
- 3.3.0-SNAPSHOT
+ 3.3.x-3410-SNAPSHOT
../pom.xml
diff --git a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/CrudMethodMetadata.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/CrudMethodMetadata.java
index b6cff2cd28..ae738974b1 100644
--- a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/CrudMethodMetadata.java
+++ b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/CrudMethodMetadata.java
@@ -85,4 +85,5 @@ public interface CrudMethodMetadata {
* @since 1.9
*/
Method getMethod();
+
}
diff --git a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/CrudMethodMetadataPostProcessor.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/CrudMethodMetadataPostProcessor.java
index 9daa2377be..246e82dcd6 100644
--- a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/CrudMethodMetadataPostProcessor.java
+++ b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/CrudMethodMetadataPostProcessor.java
@@ -28,6 +28,7 @@
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
+
import org.springframework.aop.TargetSource;
import org.springframework.aop.framework.ProxyFactory;
import org.springframework.beans.factory.BeanClassLoaderAware;
@@ -274,6 +275,7 @@ public Optional getEntityGraph() {
public Method getMethod() {
return method;
}
+
}
private static class ThreadBoundTargetSource implements TargetSource {
diff --git a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/FetchableFluentQueryByPredicate.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/FetchableFluentQueryByPredicate.java
index b6e51c2904..9ed0a0ce3e 100644
--- a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/FetchableFluentQueryByPredicate.java
+++ b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/FetchableFluentQueryByPredicate.java
@@ -34,6 +34,7 @@
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Window;
import org.springframework.data.jpa.repository.query.ScrollDelegate;
+import org.springframework.data.projection.ProjectionFactory;
import org.springframework.data.repository.query.FluentQuery.FetchableFluentQuery;
import org.springframework.data.support.PageableExecutionUtils;
import org.springframework.util.Assert;
@@ -51,6 +52,7 @@
* @author Mark Paluch
* @author Jens Schauder
* @author J.R. Onyschak
+ * @author Christoph Strobl
* @since 2.6
*/
class FetchableFluentQueryByPredicate extends FluentQuerySupport implements FetchableFluentQuery {
@@ -64,21 +66,21 @@ class FetchableFluentQueryByPredicate extends FluentQuerySupport imp
private final Function existsOperation;
private final EntityManager entityManager;
- public FetchableFluentQueryByPredicate(Predicate predicate, Class entityType,
+ FetchableFluentQueryByPredicate(Predicate predicate, Class entityType,
Function> finder, PredicateScrollDelegate scroll,
BiFunction> pagedFinder, Function countOperation,
- Function existsOperation, EntityManager entityManager) {
+ Function existsOperation, EntityManager entityManager, ProjectionFactory projectionFactory) {
this(predicate, entityType, (Class) entityType, Sort.unsorted(), 0, Collections.emptySet(), finder, scroll,
- pagedFinder, countOperation, existsOperation, entityManager);
+ pagedFinder, countOperation, existsOperation, entityManager, projectionFactory);
}
private FetchableFluentQueryByPredicate(Predicate predicate, Class entityType, Class resultType, Sort sort,
int limit, Collection properties, Function> finder,
PredicateScrollDelegate scroll, BiFunction> pagedFinder,
Function countOperation, Function existsOperation,
- EntityManager entityManager) {
+ EntityManager entityManager, ProjectionFactory projectionFactory) {
- super(resultType, sort, limit, properties, entityType);
+ super(resultType, sort, limit, properties, entityType, projectionFactory);
this.predicate = predicate;
this.finder = finder;
this.scroll = scroll;
@@ -94,7 +96,7 @@ public FetchableFluentQuery sortBy(Sort sort) {
Assert.notNull(sort, "Sort must not be null");
return new FetchableFluentQueryByPredicate<>(predicate, entityType, resultType, this.sort.and(sort), limit,
- properties, finder, scroll, pagedFinder, countOperation, existsOperation, entityManager);
+ properties, finder, scroll, pagedFinder, countOperation, existsOperation, entityManager, projectionFactory);
}
@Override
@@ -103,7 +105,7 @@ public FetchableFluentQuery limit(int limit) {
Assert.isTrue(limit >= 0, "Limit must not be negative");
return new FetchableFluentQueryByPredicate<>(predicate, entityType, resultType, sort, limit, properties, finder,
- scroll, pagedFinder, countOperation, existsOperation, entityManager);
+ scroll, pagedFinder, countOperation, existsOperation, entityManager, projectionFactory);
}
@Override
@@ -116,14 +118,15 @@ public FetchableFluentQuery as(Class resultType) {
}
return new FetchableFluentQueryByPredicate<>(predicate, entityType, resultType, sort, limit, properties, finder,
- scroll, pagedFinder, countOperation, existsOperation, entityManager);
+ scroll, pagedFinder, countOperation, existsOperation, entityManager, projectionFactory);
}
@Override
public FetchableFluentQuery project(Collection properties) {
return new FetchableFluentQueryByPredicate<>(predicate, entityType, resultType, sort, limit,
- mergeProperties(properties), finder, scroll, pagedFinder, countOperation, existsOperation, entityManager);
+ mergeProperties(properties), finder, scroll, pagedFinder, countOperation, existsOperation, entityManager,
+ projectionFactory);
}
@Override
@@ -230,7 +233,6 @@ private Function