@@ -215,6 +215,50 @@ public void createsQueryToFindAllEntitiesByDateAttributeBefore() throws Exceptio
215
215
assertThat (bindableQuery .get ()).isEqualTo (expectedSql );
216
216
}
217
217
218
+ @ Test
219
+ public void createsQueryToFindAllEntitiesByIntegerAttributeIsNull () throws Exception {
220
+ R2dbcQueryMethod queryMethod = getQueryMethod ("findAllByAgeIsNull" );
221
+ PartTreeR2dbcQuery r2dbcQuery = new PartTreeR2dbcQuery (queryMethod , databaseClient , r2dbcConverter ,
222
+ dataAccessStrategy );
223
+ RelationalParametersParameterAccessor accessor = getAccessor (queryMethod , new Object [0 ]);
224
+ BindableQuery bindableQuery = r2dbcQuery .createQuery (accessor );
225
+ String expectedSql = "SELECT " + ALL_FIELDS + " FROM " + TABLE + " WHERE " + TABLE + ".age IS NULL" ;
226
+ assertThat (bindableQuery .get ()).isEqualTo (expectedSql );
227
+ }
228
+
229
+ @ Test
230
+ public void createsQueryToFindAllEntitiesByIntegerAttributeIsNotNull () throws Exception {
231
+ R2dbcQueryMethod queryMethod = getQueryMethod ("findAllByAgeIsNotNull" );
232
+ PartTreeR2dbcQuery r2dbcQuery = new PartTreeR2dbcQuery (queryMethod , databaseClient , r2dbcConverter ,
233
+ dataAccessStrategy );
234
+ RelationalParametersParameterAccessor accessor = getAccessor (queryMethod , new Object [0 ]);
235
+ BindableQuery bindableQuery = r2dbcQuery .createQuery (accessor );
236
+ String expectedSql = "SELECT " + ALL_FIELDS + " FROM " + TABLE + " WHERE " + TABLE + ".age IS NOT NULL" ;
237
+ assertThat (bindableQuery .get ()).isEqualTo (expectedSql );
238
+ }
239
+
240
+ @ Test
241
+ public void createsQueryToFindAllEntitiesByStringAttributeLike () throws Exception {
242
+ R2dbcQueryMethod queryMethod = getQueryMethod ("findAllByFirstNameLike" , String .class );
243
+ PartTreeR2dbcQuery r2dbcQuery = new PartTreeR2dbcQuery (queryMethod , databaseClient , r2dbcConverter ,
244
+ dataAccessStrategy );
245
+ RelationalParametersParameterAccessor accessor = getAccessor (queryMethod , new Object [] {"%John%" });
246
+ BindableQuery bindableQuery = r2dbcQuery .createQuery (accessor );
247
+ String expectedSql = "SELECT " + ALL_FIELDS + " FROM " + TABLE + " WHERE " + TABLE + ".first_name LIKE ?" ;
248
+ assertThat (bindableQuery .get ()).isEqualTo (expectedSql );
249
+ }
250
+
251
+ @ Test
252
+ public void createsQueryToFindAllEntitiesByStringAttributeNotLike () throws Exception {
253
+ R2dbcQueryMethod queryMethod = getQueryMethod ("findAllByFirstNameNotLike" , String .class );
254
+ PartTreeR2dbcQuery r2dbcQuery = new PartTreeR2dbcQuery (queryMethod , databaseClient , r2dbcConverter ,
255
+ dataAccessStrategy );
256
+ RelationalParametersParameterAccessor accessor = getAccessor (queryMethod , new Object [] {"%John%" });
257
+ BindableQuery bindableQuery = r2dbcQuery .createQuery (accessor );
258
+ String expectedSql = "SELECT " + ALL_FIELDS + " FROM " + TABLE + " WHERE " + TABLE + ".first_name NOT LIKE ?" ;
259
+ assertThat (bindableQuery .get ()).isEqualTo (expectedSql );
260
+ }
261
+
218
262
private R2dbcQueryMethod getQueryMethod (String methodName , Class <?>... parameterTypes ) throws Exception {
219
263
Method method = UserRepository .class .getMethod (methodName , parameterTypes );
220
264
return new R2dbcQueryMethod (method , new DefaultRepositoryMetadata (UserRepository .class ),
@@ -247,6 +291,14 @@ private interface UserRepository extends Repository<User, Long> {
247
291
Flux <User > findAllByDateOfBirthAfter (Date date );
248
292
249
293
Flux <User > findAllByDateOfBirthBefore (Date date );
294
+
295
+ Flux <User > findAllByAgeIsNull ();
296
+
297
+ Flux <User > findAllByAgeIsNotNull ();
298
+
299
+ Flux <User > findAllByFirstNameLike (String like );
300
+
301
+ Flux <User > findAllByFirstNameNotLike (String like );
250
302
}
251
303
252
304
@ Table ("users" )
0 commit comments