1616package org .springframework .data .redis .repository .support ;
1717
1818import java .io .Serializable ;
19- import java .lang .reflect .Method ;
2019
2120import org .springframework .data .keyvalue .core .KeyValueOperations ;
2221import org .springframework .data .keyvalue .repository .query .KeyValuePartTreeQuery ;
23- import org .springframework .data .keyvalue .repository .query .KeyValuePartTreeQuery .QueryInitialization ;
2422import org .springframework .data .keyvalue .repository .support .KeyValueRepositoryFactory ;
25- import org .springframework .data .projection .ProjectionFactory ;
2623import org .springframework .data .redis .core .mapping .RedisPersistentEntity ;
2724import org .springframework .data .redis .repository .core .MappingRedisEntityInformation ;
25+ import org .springframework .data .redis .repository .query .RedisQueryCreator ;
2826import org .springframework .data .repository .core .EntityInformation ;
29- import org .springframework .data .repository .core .NamedQueries ;
30- import org .springframework .data .repository .core .RepositoryMetadata ;
3127import org .springframework .data .repository .core .support .RepositoryFactorySupport ;
32- import org .springframework .data .repository .query .EvaluationContextProvider ;
33- import org .springframework .data .repository .query .QueryLookupStrategy ;
34- import org .springframework .data .repository .query .QueryLookupStrategy .Key ;
35- import org .springframework .data .repository .query .QueryMethod ;
3628import org .springframework .data .repository .query .RepositoryQuery ;
3729import org .springframework .data .repository .query .parser .AbstractQueryCreator ;
38- import org .springframework .util .Assert ;
3930
4031/**
4132 * {@link RepositoryFactorySupport} specific of handing Redis
4839public class RedisRepositoryFactory extends KeyValueRepositoryFactory {
4940
5041private final KeyValueOperations operations ;
51- private final Class <? extends AbstractQueryCreator <?, ?>> queryCreator ;
5242
5343/**
5444 * @param keyValueOperations
5545 * @see KeyValueRepositoryFactory#KeyValueRepositoryFactory(KeyValueOperations)
5646 */
5747public RedisRepositoryFactory (KeyValueOperations keyValueOperations ) {
58- this (keyValueOperations , DEFAULT_QUERY_CREATOR );
48+ this (keyValueOperations , RedisQueryCreator . class );
5949}
6050
6151/**
@@ -65,19 +55,20 @@ public RedisRepositoryFactory(KeyValueOperations keyValueOperations) {
6555 */
6656public RedisRepositoryFactory (KeyValueOperations keyValueOperations ,
6757Class <? extends AbstractQueryCreator <?, ?>> queryCreator ) {
68- super (keyValueOperations , queryCreator );
69-
70- this .operations = keyValueOperations ;
71- this .queryCreator = queryCreator ;
58+ this (keyValueOperations , queryCreator , KeyValuePartTreeQuery .class );
7259}
7360
74- /*
75- * (non-Javadoc)
76- * @see org.springframework.data.keyvalue.repository.support.KeyValueRepositoryFactory#getQueryLookupStrategy(org.springframework.data.repository.query.QueryLookupStrategy.Key, org.springframework.data.repository.query.EvaluationContextProvider)
61+ /**
62+ * @param keyValueOperations
63+ * @param queryCreator
64+ * @param repositoryQueryType
65+ * @see KeyValueRepositoryFactory#KeyValueRepositoryFactory(KeyValueOperations, Class, Class)
7766 */
78- @ Override
79- protected QueryLookupStrategy getQueryLookupStrategy (Key key , EvaluationContextProvider evaluationContextProvider ) {
80- return new RedisQueryLookupStrategy (key , evaluationContextProvider , operations , queryCreator );
67+ public RedisRepositoryFactory (KeyValueOperations keyValueOperations ,
68+ Class <? extends AbstractQueryCreator <?, ?>> queryCreator , Class <? extends RepositoryQuery > repositoryQueryType ) {
69+ super (keyValueOperations , queryCreator , repositoryQueryType );
70+
71+ this .operations = keyValueOperations ;
8172}
8273
8374/*
@@ -95,53 +86,4 @@ public <T, ID extends Serializable> EntityInformation<T, ID> getEntityInformatio
9586
9687return entityInformation ;
9788}
98-
99- /**
100- * @author Christoph Strobl
101- * @since 1.7
102- */
103- private static class RedisQueryLookupStrategy implements QueryLookupStrategy {
104-
105- private EvaluationContextProvider evaluationContextProvider ;
106- private KeyValueOperations keyValueOperations ;
107-
108- private Class <? extends AbstractQueryCreator <?, ?>> queryCreator ;
109-
110- /**
111- * Creates a new {@link RedisQueryLookupStrategy} for the given {@link Key}, {@link EvaluationContextProvider},
112- * {@link KeyValueOperations} and query creator type.
113- * <p>
114- *
115- * @param key
116- * @param evaluationContextProvider must not be {@literal null}.
117- * @param keyValueOperations must not be {@literal null}.
118- * @param queryCreator must not be {@literal null}.
119- */
120- public RedisQueryLookupStrategy (Key key , EvaluationContextProvider evaluationContextProvider ,
121- KeyValueOperations keyValueOperations , Class <? extends AbstractQueryCreator <?, ?>> queryCreator ) {
122-
123- Assert .notNull (evaluationContextProvider , "EvaluationContextProvider must not be null!" );
124- Assert .notNull (keyValueOperations , "KeyValueOperations must not be null!" );
125- Assert .notNull (queryCreator , "Query creator type must not be null!" );
126-
127- this .evaluationContextProvider = evaluationContextProvider ;
128- this .keyValueOperations = keyValueOperations ;
129- this .queryCreator = queryCreator ;
130- }
131-
132- /*
133- * (non-Javadoc)
134- * @see org.springframework.data.repository.query.QueryLookupStrategy#resolveQuery(java.lang.reflect.Method, org.springframework.data.repository.core.RepositoryMetadata, org.springframework.data.repository.core.NamedQueries)
135- */
136- @ Override
137- public RepositoryQuery resolveQuery (Method method , RepositoryMetadata metadata , ProjectionFactory factory ,
138- NamedQueries namedQueries ) {
139-
140- QueryMethod queryMethod = new QueryMethod (method , metadata , factory );
141- KeyValuePartTreeQuery partTreeQuery = new KeyValuePartTreeQuery (queryMethod , evaluationContextProvider ,
142- this .keyValueOperations , this .queryCreator );
143- partTreeQuery .setQueryIntialization (QueryInitialization .NEW );
144- return partTreeQuery ;
145- }
146- }
14789}
0 commit comments