15
15
*/
16
16
package org .springframework .data .r2dbc .repository .support ;
17
17
18
- import org .springframework .data .util .StreamUtils ;
19
- import org .springframework .data .util .Streamable ;
20
- import org .springframework .util .CollectionUtils ;
21
18
import reactor .core .publisher .Flux ;
22
19
import reactor .core .publisher .Mono ;
23
20
21
+ import java .util .List ;
22
+
24
23
import org .reactivestreams .Publisher ;
25
24
26
25
import org .springframework .data .domain .Sort ;
34
33
import org .springframework .data .relational .repository .query .RelationalEntityInformation ;
35
34
import org .springframework .data .repository .reactive .ReactiveSortingRepository ;
36
35
import org .springframework .data .util .Lazy ;
36
+ import org .springframework .data .util .Streamable ;
37
37
import org .springframework .r2dbc .core .DatabaseClient ;
38
38
import org .springframework .transaction .annotation .Transactional ;
39
39
import org .springframework .util .Assert ;
40
40
41
- import java .util .List ;
42
-
43
41
/**
44
42
* Simple {@link ReactiveSortingRepository} implementation using R2DBC through {@link DatabaseClient}.
45
43
*
@@ -116,7 +114,12 @@ public SimpleR2dbcRepository(RelationalEntityInformation<T, ID> entity,
116
114
.getRequiredIdProperty ());
117
115
}
118
116
119
- /* (non-Javadoc)
117
+ // -------------------------------------------------------------------------
118
+ // Methods from ReactiveCrudRepository
119
+ // -------------------------------------------------------------------------
120
+
121
+ /*
122
+ * (non-Javadoc)
120
123
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#save(S)
121
124
*/
122
125
@ Override
@@ -132,7 +135,8 @@ public <S extends T> Mono<S> save(S objectToSave) {
132
135
return this .entityOperations .update (objectToSave );
133
136
}
134
137
135
- /* (non-Javadoc)
138
+ /*
139
+ * (non-Javadoc)
136
140
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#saveAll(java.lang.Iterable)
137
141
*/
138
142
@ Override
@@ -144,7 +148,8 @@ public <S extends T> Flux<S> saveAll(Iterable<S> objectsToSave) {
144
148
return Flux .fromIterable (objectsToSave ).concatMap (this ::save );
145
149
}
146
150
147
- /* (non-Javadoc)
151
+ /*
152
+ * (non-Javadoc)
148
153
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#saveAll(org.reactivestreams.Publisher)
149
154
*/
150
155
@ Override
@@ -156,7 +161,8 @@ public <S extends T> Flux<S> saveAll(Publisher<S> objectsToSave) {
156
161
return Flux .from (objectsToSave ).concatMap (this ::save );
157
162
}
158
163
159
- /* (non-Javadoc)
164
+ /*
165
+ * (non-Javadoc)
160
166
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#findById(java.lang.Object)
161
167
*/
162
168
@ Override
@@ -167,15 +173,17 @@ public Mono<T> findById(ID id) {
167
173
return this .entityOperations .selectOne (getIdQuery (id ), this .entity .getJavaType ());
168
174
}
169
175
170
- /* (non-Javadoc)
176
+ /*
177
+ * (non-Javadoc)
171
178
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#findById(org.reactivestreams.Publisher)
172
179
*/
173
180
@ Override
174
181
public Mono <T > findById (Publisher <ID > publisher ) {
175
182
return Mono .from (publisher ).flatMap (this ::findById );
176
183
}
177
184
178
- /* (non-Javadoc)
185
+ /*
186
+ * (non-Javadoc)
179
187
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#existsById(java.lang.Object)
180
188
*/
181
189
@ Override
@@ -186,34 +194,26 @@ public Mono<Boolean> existsById(ID id) {
186
194
return this .entityOperations .exists (getIdQuery (id ), this .entity .getJavaType ());
187
195
}
188
196
189
- /* (non-Javadoc)
197
+ /*
198
+ * (non-Javadoc)
190
199
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#existsById(org.reactivestreams.Publisher)
191
200
*/
192
201
@ Override
193
202
public Mono <Boolean > existsById (Publisher <ID > publisher ) {
194
203
return Mono .from (publisher ).flatMap (this ::findById ).hasElement ();
195
204
}
196
205
197
- /* (non-Javadoc)
206
+ /*
207
+ * (non-Javadoc)
198
208
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#findAll()
199
209
*/
200
210
@ Override
201
211
public Flux <T > findAll () {
202
212
return this .entityOperations .select (Query .empty (), this .entity .getJavaType ());
203
213
}
204
214
205
- /* (non-Javadoc)
206
- * @see org.springframework.data.repository.reactive.ReactiveSortingRepository#findAll(org.springframework.data.domain.Sort)
207
- */
208
- @ Override
209
- public Flux <T > findAll (Sort sort ) {
210
-
211
- Assert .notNull (sort , "Sort must not be null!" );
212
-
213
- return this .entityOperations .select (Query .empty ().sort (sort ), this .entity .getJavaType ());
214
- }
215
-
216
- /* (non-Javadoc)
215
+ /*
216
+ * (non-Javadoc)
217
217
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#findAllById(java.lang.Iterable)
218
218
*/
219
219
@ Override
@@ -224,7 +224,8 @@ public Flux<T> findAllById(Iterable<ID> iterable) {
224
224
return findAllById (Flux .fromIterable (iterable ));
225
225
}
226
226
227
- /* (non-Javadoc)
227
+ /*
228
+ * (non-Javadoc)
228
229
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#findAllById(org.reactivestreams.Publisher)
229
230
*/
230
231
@ Override
@@ -244,15 +245,17 @@ public Flux<T> findAllById(Publisher<ID> idPublisher) {
244
245
});
245
246
}
246
247
247
- /* (non-Javadoc)
248
+ /*
249
+ * (non-Javadoc)
248
250
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#count()
249
251
*/
250
252
@ Override
251
253
public Mono <Long > count () {
252
254
return this .entityOperations .count (Query .empty (), this .entity .getJavaType ());
253
255
}
254
256
255
- /* (non-Javadoc)
257
+ /*
258
+ * (non-Javadoc)
256
259
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#deleteById(java.lang.Object)
257
260
*/
258
261
@ Override
@@ -264,7 +267,8 @@ public Mono<Void> deleteById(ID id) {
264
267
return this .entityOperations .delete (getIdQuery (id ), this .entity .getJavaType ()).then ();
265
268
}
266
269
267
- /* (non-Javadoc)
270
+ /*
271
+ * (non-Javadoc)
268
272
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#deleteById(org.reactivestreams.Publisher)
269
273
*/
270
274
@ Override
@@ -285,7 +289,8 @@ public Mono<Void> deleteById(Publisher<ID> idPublisher) {
285
289
}).then ();
286
290
}
287
291
288
- /* (non-Javadoc)
292
+ /*
293
+ * (non-Javadoc)
289
294
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#delete(java.lang.Object)
290
295
*/
291
296
@ Override
@@ -297,29 +302,36 @@ public Mono<Void> delete(T objectToDelete) {
297
302
return deleteById (this .entity .getRequiredId (objectToDelete ));
298
303
}
299
304
300
- /* (non-Javadoc)
301
- * @see org.springframework.data.repository.reactive.ReactiveCrudRepository#deleteAll(java.lang.Iterable)
305
+ /*
306
+ * (non-Javadoc)
307
+ * @see org.springframework.data.repository.reactive.ReactiveCrudRepository#deleteAllById(java.lang.Iterable)
302
308
*/
303
309
@ Override
304
- @ Transactional
305
- public Mono <Void > deleteAll (Iterable <? extends T > iterable ) {
310
+ public Mono <Void > deleteAllById (Iterable <? extends ID > ids ) {
306
311
307
- Assert .notNull (iterable , "The iterable of Id's must not be null!" );
312
+ Assert .notNull (ids , "The iterable of Id's must not be null!" );
308
313
309
- return deleteAll (Flux .fromIterable (iterable ));
314
+ List <? extends ID > idsList = Streamable .of (ids ).toList ();
315
+ String idProperty = getIdProperty ().getName ();
316
+ return this .entityOperations .delete (Query .query (Criteria .where (idProperty ).in (idsList )), this .entity .getJavaType ())
317
+ .then ();
310
318
}
311
319
320
+ /*
321
+ * (non-Javadoc)
322
+ * @see org.springframework.data.repository.reactive.ReactiveCrudRepository#deleteAll(java.lang.Iterable)
323
+ */
312
324
@ Override
313
- public Mono <Void > deleteAllById (Iterable <? extends ID > ids ) {
325
+ @ Transactional
326
+ public Mono <Void > deleteAll (Iterable <? extends T > iterable ) {
314
327
315
- Assert .notNull (ids , "The iterable of Id's must not be null!" );
328
+ Assert .notNull (iterable , "The iterable of Id's must not be null!" );
316
329
317
- List <? extends ID > idsList = Streamable .of (ids ).toList ();
318
- String idProperty = getIdProperty ().getName ();
319
- return this .entityOperations .delete (Query .query (Criteria .where (idProperty ).in (idsList )), this .entity .getJavaType ()).then ();
330
+ return deleteAll (Flux .fromIterable (iterable ));
320
331
}
321
332
322
- /* (non-Javadoc)
333
+ /*
334
+ * (non-Javadoc)
323
335
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#deleteAll(org.reactivestreams.Publisher)
324
336
*/
325
337
@ Override
@@ -334,7 +346,8 @@ public Mono<Void> deleteAll(Publisher<? extends T> objectPublisher) {
334
346
return deleteById (idPublisher );
335
347
}
336
348
337
- /* (non-Javadoc)
349
+ /*
350
+ * (non-Javadoc)
338
351
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#deleteAll()
339
352
*/
340
353
@ Override
@@ -343,6 +356,22 @@ public Mono<Void> deleteAll() {
343
356
return this .entityOperations .delete (Query .empty (), this .entity .getJavaType ()).then ();
344
357
}
345
358
359
+ // -------------------------------------------------------------------------
360
+ // Methods from ReactiveSortingRepository
361
+ // -------------------------------------------------------------------------
362
+
363
+ /*
364
+ * (non-Javadoc)
365
+ * @see org.springframework.data.repository.reactive.ReactiveSortingRepository#findAll(org.springframework.data.domain.Sort)
366
+ */
367
+ @ Override
368
+ public Flux <T > findAll (Sort sort ) {
369
+
370
+ Assert .notNull (sort , "Sort must not be null!" );
371
+
372
+ return this .entityOperations .select (Query .empty ().sort (sort ), this .entity .getJavaType ());
373
+ }
374
+
346
375
private RelationalPersistentProperty getIdProperty () {
347
376
return this .idProperty .get ();
348
377
}
0 commit comments