15
15
*/
16
16
package org .springframework .data .jdbc .repository .query ;
17
17
18
+ import static org .assertj .core .api .Assertions .*;
19
+
20
+ import java .time .LocalDateTime ;
21
+ import java .util .Date ;
22
+ import java .util .List ;
23
+ import java .util .Optional ;
24
+ import java .util .stream .Stream ;
25
+
18
26
import org .junit .ClassRule ;
19
27
import org .junit .Rule ;
20
28
import org .junit .Test ;
33
41
import org .springframework .test .context .junit4 .rules .SpringMethodRule ;
34
42
import org .springframework .transaction .annotation .Transactional ;
35
43
36
- import java .time .LocalDateTime ;
37
- import java .util .Date ;
38
- import java .util .List ;
39
- import java .util .Optional ;
40
- import java .util .stream .Stream ;
41
-
42
- import static org .assertj .core .api .Assertions .*;
43
-
44
44
/**
45
45
* Tests the execution of queries from {@link Query} annotations on repository methods.
46
46
*
51
51
@ Transactional
52
52
public class QueryAnnotationHsqlIntegrationTests {
53
53
54
- @ Autowired
55
- DummyEntityRepository repository ;
54
+ @ Autowired DummyEntityRepository repository ;
56
55
57
- @ ClassRule
58
- public static final SpringClassRule classRule = new SpringClassRule ();
59
- @ Rule
60
- public SpringMethodRule methodRule = new SpringMethodRule ();
56
+ @ ClassRule public static final SpringClassRule classRule = new SpringClassRule ();
57
+ @ Rule public SpringMethodRule methodRule = new SpringMethodRule ();
61
58
62
59
@ Test // DATAJDBC-164
63
60
public void executeCustomQueryWithoutParameter () {
@@ -167,7 +164,7 @@ public void executeCustomQueryWithReturnTypeIsStream() {
167
164
.containsExactlyInAnyOrder ("a" , "b" );
168
165
169
166
}
170
-
167
+
171
168
@ Test // DATAJDBC-175
172
169
public void executeCustomQueryWithReturnTypeIsNubmer () {
173
170
@@ -211,36 +208,40 @@ public void executeCustomQueryWithReturnTypeIsLocalDateTimeList() {
211
208
}
212
209
213
210
@ Test // DATAJDBC-182
214
- public void executeCustomModifyingQueryWithReturnTypeIsNumber () {
211
+ public void executeCustomModifyingQueryWithReturnTypeNumber () {
215
212
216
213
DummyEntity entity = dummyEntity ("a" );
217
214
repository .save (entity );
218
215
219
216
assertThat (repository .updateName (entity .id , "b" )).isEqualTo (1 );
220
- assertThat (repository .updateName (9999L , "b" )).isEqualTo (0 );
221
- assertThat (repository .findById (entity .id )).isPresent ().map (e -> e .name ).contains ("b" );
217
+ assertThat (repository .updateName (9999L , "c" )).isEqualTo (0 );
222
218
219
+ assertThat (repository .findById (entity .id )) //
220
+ .describedAs ("update was not performed as expected" ) //
221
+ .isPresent () //
222
+ .map (e -> e .name ).contains ("b" );
223
223
}
224
224
225
225
@ Test // DATAJDBC-182
226
- public void executeCustomModifyingQueryWithReturnTypeIsBoolean () {
226
+ public void executeCustomModifyingQueryWithReturnTypeBoolean () {
227
227
228
228
DummyEntity entity = dummyEntity ("a" );
229
229
repository .save (entity );
230
230
231
231
assertThat (repository .deleteByName ("a" )).isTrue ();
232
232
assertThat (repository .deleteByName ("b" )).isFalse ();
233
- assertThat (repository .findById (entity .id )).isNotPresent ();
234
233
234
+ assertThat (repository .findById (entity .id )) //
235
+ .describedAs ("delete not performed as expected" ) //
236
+ .isNotPresent ();
235
237
}
236
238
237
239
@ Test // DATAJDBC-182
238
- public void executeCustomModifyingQueryWithReturnTypeIsVoid () {
240
+ public void executeCustomModifyingQueryWithReturnTypeVoid () {
239
241
240
242
repository .insert ("Spring Data JDBC" );
241
243
242
244
assertThat (repository .findByNameAsEntity ("Spring Data JDBC" )).isNotNull ();
243
-
244
245
}
245
246
246
247
private DummyEntity dummyEntity (String name ) {
@@ -263,49 +264,59 @@ Class<?> testClass() {
263
264
264
265
private static class DummyEntity {
265
266
266
- @ Id
267
- Long id ;
267
+ @ Id Long id ;
268
268
269
269
String name ;
270
270
}
271
271
272
272
private interface DummyEntityRepository extends CrudRepository <DummyEntity , Long > {
273
273
274
+ // DATAJDBC-164
274
275
@ Query ("SELECT * FROM DUMMYENTITY WHERE lower(name) <> name" )
275
276
List <DummyEntity > findByNameContainingCapitalLetter ();
276
277
278
+ // DATAJDBC-164
277
279
@ Query ("SELECT * FROM DUMMYENTITY WHERE name < :upper and name > :lower" )
278
280
List <DummyEntity > findByNamedRangeWithNamedParameter (@ Param ("lower" ) String lower , @ Param ("upper" ) String upper );
279
281
280
282
@ Query ("SELECT * FROM DUMMYENTITY WHERE name = :name" )
281
283
Optional <DummyEntity > findByNameAsOptional (@ Param ("name" ) String name );
282
284
285
+ // DATAJDBC-172
283
286
@ Query ("SELECT * FROM DUMMYENTITY WHERE name = :name" )
284
287
DummyEntity findByNameAsEntity (@ Param ("name" ) String name );
285
288
289
+ // DATAJDBC-172
286
290
@ Query ("SELECT * FROM DUMMYENTITY" )
287
291
Stream <DummyEntity > findAllWithReturnTypeIsStream ();
288
292
293
+ // DATAJDBC-175
289
294
@ Query ("SELECT count(*) FROM DUMMYENTITY WHERE name like '%' || :name || '%'" )
290
295
int countByNameContaining (@ Param ("name" ) String name );
291
296
297
+ // DATAJDBC-175
292
298
@ Query ("SELECT count(*) FROM DUMMYENTITY WHERE name like '%' || :name || '%'" )
293
299
boolean existsByNameContaining (@ Param ("name" ) String name );
294
300
301
+ // DATAJDBC-175
295
302
@ Query ("VALUES (current_timestamp)" )
296
303
Date nowWithDate ();
297
304
305
+ // DATAJDBC-175
298
306
@ Query ("VALUES (current_timestamp),(current_timestamp)" )
299
307
List <LocalDateTime > nowWithLocalDateTimeList ();
300
308
309
+ // DATAJDBC-182
301
310
@ Modifying
302
311
@ Query ("UPDATE DUMMYENTITY SET name = :name WHERE id = :id" )
303
312
int updateName (@ Param ("id" ) Long id , @ Param ("name" ) String name );
304
313
314
+ // DATAJDBC-182
305
315
@ Modifying
306
316
@ Query ("DELETE FROM DUMMYENTITY WHERE name = :name" )
307
317
boolean deleteByName (@ Param ("name" ) String name );
308
318
319
+ // DATAJDBC-182
309
320
@ Modifying
310
321
@ Query ("INSERT INTO DUMMYENTITY (name) VALUES(:name)" )
311
322
void insert (@ Param ("name" ) String name );
0 commit comments