diff --git a/src/main/java/org/springframework/data/jpa/repository/query/AbstractJpaQuery.java b/src/main/java/org/springframework/data/jpa/repository/query/AbstractJpaQuery.java index c4ac0a219..ab47379df 100644 --- a/src/main/java/org/springframework/data/jpa/repository/query/AbstractJpaQuery.java +++ b/src/main/java/org/springframework/data/jpa/repository/query/AbstractJpaQuery.java @@ -103,16 +103,14 @@ public abstract class AbstractJpaQuery implements RepositoryQuery { protected JpaQueryExecution getExecution() { - switch (method.getType()) { - - case COLLECTION: + if (method.isCollectionQuery()) { return new CollectionExecution(); - case PAGING: + } else if (method.isPageQuery()) { return new PagedExecution(method.getParameters()); - case MODIFYING: + } else if (method.isModifyingQuery()) { return method.getClearAutomatically() ? new ModifyingExecution( method, em) : new ModifyingExecution(method, null); - default: + } else { return new SingleEntityExecution(); } } diff --git a/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryMethod.java b/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryMethod.java index 9fa3d5f52..34f43dc41 100644 --- a/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryMethod.java +++ b/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryMethod.java @@ -76,7 +76,7 @@ public class JpaQueryMethod extends QueryMethod { * @return */ @Override - protected boolean isModifyingQuery() { + public boolean isModifyingQuery() { return null != method.getAnnotation(Modifying.class); } diff --git a/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryMethodUnitTests.java b/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryMethodUnitTests.java index 771e70e85..b0af04362 100644 --- a/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryMethodUnitTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/query/JpaQueryMethodUnitTests.java @@ -37,7 +37,6 @@ import org.springframework.data.jpa.repository.sample.UserRepository; import org.springframework.data.repository.core.RepositoryMetadata; import org.springframework.data.repository.core.support.DefaultRepositoryMetadata; import org.springframework.data.repository.query.QueryMethod; -import org.springframework.data.repository.query.QueryMethod.Type; /** @@ -95,7 +94,7 @@ public class JpaQueryMethodUnitTests { new JpaQueryMethod(repositoryMethod, metadata, extractor); assertEquals("User.findByLastname", method.getNamedQueryName()); - assertThat(method.getType(), is(Type.COLLECTION)); + assertThat(method.isCollectionQuery(), is(true)); }