diff --git a/src/main/java/org/springframework/data/jpa/projection/CollectionAwareProjectionFactory.java b/src/main/java/org/springframework/data/jpa/projection/CollectionAwareProjectionFactory.java index 6d56f57a5..d0c6ecc5b 100644 --- a/src/main/java/org/springframework/data/jpa/projection/CollectionAwareProjectionFactory.java +++ b/src/main/java/org/springframework/data/jpa/projection/CollectionAwareProjectionFactory.java @@ -27,20 +27,29 @@ import org.springframework.data.projection.SpelAwareProxyProjectionFactory; * maps to be open. * * @author Jens Schauder + * @author Oliver Gierke */ public class CollectionAwareProjectionFactory extends SpelAwareProxyProjectionFactory { + /* + * (non-Javadoc) + * @see org.springframework.data.projection.SpelAwareProxyProjectionFactory#createProjectionInformation(java.lang.Class) + */ @Override protected ProjectionInformation createProjectionInformation(Class projectionType) { return new CollectionAwareProjectionInformation(projectionType); } - private class CollectionAwareProjectionInformation extends SpelAwareProjectionInformation { + private static class CollectionAwareProjectionInformation extends SpelAwareProjectionInformation { CollectionAwareProjectionInformation(Class projectionType) { super(projectionType); } + /* + * (non-Javadoc) + * @see org.springframework.data.projection.SpelAwareProxyProjectionFactory.SpelAwareProjectionInformation#isInputProperty(java.beans.PropertyDescriptor) + */ @Override protected boolean isInputProperty(PropertyDescriptor descriptor) { @@ -48,11 +57,8 @@ public class CollectionAwareProjectionFactory extends SpelAwareProxyProjectionFa return false; } - boolean isMapOrCollection = // - Collection.class.isAssignableFrom(descriptor.getPropertyType()) // - || Map.class.isAssignableFrom(descriptor.getPropertyType()); - - return !isMapOrCollection; + return !(Collection.class.isAssignableFrom(descriptor.getPropertyType()) // + || Map.class.isAssignableFrom(descriptor.getPropertyType())); } } } diff --git a/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactory.java b/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactory.java index 042c1c338..93a50398e 100644 --- a/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactory.java +++ b/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactory.java @@ -29,7 +29,6 @@ import org.springframework.data.jpa.provider.QueryExtractor; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy; import org.springframework.data.projection.ProjectionFactory; -import org.springframework.data.projection.SpelAwareProxyProjectionFactory; import org.springframework.data.querydsl.QuerydslPredicateExecutor; import org.springframework.data.repository.core.RepositoryInformation; import org.springframework.data.repository.core.RepositoryMetadata; @@ -76,6 +75,7 @@ public class JpaRepositoryFactory extends RepositoryFactorySupport { */ @Override public void setBeanClassLoader(ClassLoader classLoader) { + super.setBeanClassLoader(classLoader); this.crudMethodMetadataPostProcessor.setBeanClassLoader(classLoader); } @@ -123,6 +123,10 @@ public class JpaRepositoryFactory extends RepositoryFactorySupport { } } + /* + * (non-Javadoc) + * @see org.springframework.data.repository.core.support.RepositoryFactorySupport#getProjectionFactory(java.lang.ClassLoader, org.springframework.beans.factory.BeanFactory) + */ @Override protected ProjectionFactory getProjectionFactory(ClassLoader classLoader, BeanFactory beanFactory) {