Skip to content

Commit 88a0cfd

Browse files
committed
spring-projects#282 - Use 'PartTreeR2dbcQuery' by default when no query explicitly associated with repository method
1 parent a58003b commit 88a0cfd

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

Diff for: src/main/java/org/springframework/data/r2dbc/repository/support/R2dbcRepositoryFactory.java

+11-4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.springframework.data.r2dbc.core.R2dbcEntityTemplate;
2626
import org.springframework.data.r2dbc.core.ReactiveDataAccessStrategy;
2727
import org.springframework.data.r2dbc.repository.R2dbcRepository;
28+
import org.springframework.data.r2dbc.repository.query.PartTreeR2dbcQuery;
2829
import org.springframework.data.r2dbc.repository.query.R2dbcQueryMethod;
2930
import org.springframework.data.r2dbc.repository.query.StringBasedR2dbcQuery;
3031
import org.springframework.data.relational.core.mapping.RelationalPersistentEntity;
@@ -104,7 +105,8 @@ protected Object getTargetRepository(RepositoryInformation information) {
104105
@Override
105106
protected Optional<QueryLookupStrategy> getQueryLookupStrategy(@Nullable Key key,
106107
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));
108110
}
109111

110112
/*
@@ -134,12 +136,16 @@ private static class R2dbcQueryLookupStrategy implements QueryLookupStrategy {
134136
private final DatabaseClient databaseClient;
135137
private final QueryMethodEvaluationContextProvider evaluationContextProvider;
136138
private final R2dbcConverter converter;
139+
private final ReactiveDataAccessStrategy dataAccessStrategy;
137140

138141
R2dbcQueryLookupStrategy(DatabaseClient databaseClient,
139-
QueryMethodEvaluationContextProvider evaluationContextProvider, R2dbcConverter converter) {
142+
QueryMethodEvaluationContextProvider evaluationContextProvider,
143+
R2dbcConverter converter,
144+
ReactiveDataAccessStrategy dataAccessStrategy) {
140145
this.databaseClient = databaseClient;
141146
this.evaluationContextProvider = evaluationContextProvider;
142147
this.converter = converter;
148+
this.dataAccessStrategy = dataAccessStrategy;
143149
}
144150

145151
/*
@@ -161,9 +167,10 @@ public RepositoryQuery resolveQuery(Method method, RepositoryMetadata metadata,
161167
} else if (queryMethod.hasAnnotatedQuery()) {
162168
return new StringBasedR2dbcQuery(queryMethod, this.databaseClient, this.converter, EXPRESSION_PARSER,
163169
this.evaluationContextProvider);
170+
} else {
171+
return new PartTreeR2dbcQuery(queryMethod, this.databaseClient, this.converter,
172+
this.dataAccessStrategy);
164173
}
165-
166-
throw new UnsupportedOperationException("Query derivation not yet supported!");
167174
}
168175
}
169176
}

0 commit comments

Comments
 (0)