25
25
import org .springframework .data .r2dbc .core .R2dbcEntityTemplate ;
26
26
import org .springframework .data .r2dbc .core .ReactiveDataAccessStrategy ;
27
27
import org .springframework .data .r2dbc .repository .R2dbcRepository ;
28
+ import org .springframework .data .r2dbc .repository .query .PartTreeR2dbcQuery ;
28
29
import org .springframework .data .r2dbc .repository .query .R2dbcQueryMethod ;
29
30
import org .springframework .data .r2dbc .repository .query .StringBasedR2dbcQuery ;
30
31
import org .springframework .data .relational .core .mapping .RelationalPersistentEntity ;
@@ -104,7 +105,8 @@ protected Object getTargetRepository(RepositoryInformation information) {
104
105
@ Override
105
106
protected Optional <QueryLookupStrategy > getQueryLookupStrategy (@ Nullable Key key ,
106
107
QueryMethodEvaluationContextProvider evaluationContextProvider ) {
107
- return Optional .of (new R2dbcQueryLookupStrategy (this .databaseClient , evaluationContextProvider , this .converter ));
108
+ return Optional .of (new R2dbcQueryLookupStrategy (this .databaseClient , evaluationContextProvider , this .converter ,
109
+ this .dataAccessStrategy ));
108
110
}
109
111
110
112
/*
@@ -134,12 +136,16 @@ private static class R2dbcQueryLookupStrategy implements QueryLookupStrategy {
134
136
private final DatabaseClient databaseClient ;
135
137
private final QueryMethodEvaluationContextProvider evaluationContextProvider ;
136
138
private final R2dbcConverter converter ;
139
+ private final ReactiveDataAccessStrategy dataAccessStrategy ;
137
140
138
141
R2dbcQueryLookupStrategy (DatabaseClient databaseClient ,
139
- QueryMethodEvaluationContextProvider evaluationContextProvider , R2dbcConverter converter ) {
142
+ QueryMethodEvaluationContextProvider evaluationContextProvider ,
143
+ R2dbcConverter converter ,
144
+ ReactiveDataAccessStrategy dataAccessStrategy ) {
140
145
this .databaseClient = databaseClient ;
141
146
this .evaluationContextProvider = evaluationContextProvider ;
142
147
this .converter = converter ;
148
+ this .dataAccessStrategy = dataAccessStrategy ;
143
149
}
144
150
145
151
/*
@@ -161,9 +167,10 @@ public RepositoryQuery resolveQuery(Method method, RepositoryMetadata metadata,
161
167
} else if (queryMethod .hasAnnotatedQuery ()) {
162
168
return new StringBasedR2dbcQuery (queryMethod , this .databaseClient , this .converter , EXPRESSION_PARSER ,
163
169
this .evaluationContextProvider );
170
+ } else {
171
+ return new PartTreeR2dbcQuery (queryMethod , this .databaseClient , this .converter ,
172
+ this .dataAccessStrategy );
164
173
}
165
-
166
- throw new UnsupportedOperationException ("Query derivation not yet supported!" );
167
174
}
168
175
}
169
176
}
0 commit comments