@@ -55,7 +55,8 @@ public class PartTreeR2dbcQueryIntegrationTests {
55
55
private static final String ALL_FIELDS = TABLE + ".id, "
56
56
+ TABLE + ".first_name, "
57
57
+ TABLE + ".last_name, "
58
- + TABLE + ".date_of_birth" ;
58
+ + TABLE + ".date_of_birth, "
59
+ + TABLE + ".age" ;
59
60
60
61
@ Mock
61
62
private ConnectionFactory connectionFactory ;
@@ -141,13 +142,57 @@ public void createsQueryToFindAllEntitiesByDateAttributeBetween() throws Excepti
141
142
R2dbcQueryMethod queryMethod = getQueryMethod ("findAllByDateOfBirthBetween" , Date .class , Date .class );
142
143
PartTreeR2dbcQuery r2dbcQuery = new PartTreeR2dbcQuery (queryMethod , databaseClient , r2dbcConverter ,
143
144
dataAccessStrategy );
144
- RelationalParametersParameterAccessor accessor = getAccessor (queryMethod , new Object []{null , new Date ()});
145
+ RelationalParametersParameterAccessor accessor = getAccessor (queryMethod , new Object []{new Date () , new Date ()});
145
146
BindableQuery bindableQuery = r2dbcQuery .createQuery (accessor );
146
147
String expectedSql = "SELECT " + ALL_FIELDS + " FROM " + TABLE
147
148
+ " WHERE " + TABLE + ".date_of_birth >= ? AND " + TABLE + ".date_of_birth <= ?" ;
148
149
assertThat (bindableQuery .get ()).isEqualTo (expectedSql );
149
150
}
150
151
152
+ @ Test
153
+ public void createsQueryToFindAllEntitiesByIntegerAttributeLessThan () throws Exception {
154
+ R2dbcQueryMethod queryMethod = getQueryMethod ("findAllByAgeLessThan" , Integer .class );
155
+ PartTreeR2dbcQuery r2dbcQuery = new PartTreeR2dbcQuery (queryMethod , databaseClient , r2dbcConverter ,
156
+ dataAccessStrategy );
157
+ RelationalParametersParameterAccessor accessor = getAccessor (queryMethod , new Object []{30 });
158
+ BindableQuery bindableQuery = r2dbcQuery .createQuery (accessor );
159
+ String expectedSql = "SELECT " + ALL_FIELDS + " FROM " + TABLE + " WHERE " + TABLE + ".age < ?" ;
160
+ assertThat (bindableQuery .get ()).isEqualTo (expectedSql );
161
+ }
162
+
163
+ @ Test
164
+ public void createsQueryToFindAllEntitiesByIntegerAttributeLessThanEqual () throws Exception {
165
+ R2dbcQueryMethod queryMethod = getQueryMethod ("findAllByAgeLessThanEqual" , Integer .class );
166
+ PartTreeR2dbcQuery r2dbcQuery = new PartTreeR2dbcQuery (queryMethod , databaseClient , r2dbcConverter ,
167
+ dataAccessStrategy );
168
+ RelationalParametersParameterAccessor accessor = getAccessor (queryMethod , new Object []{30 });
169
+ BindableQuery bindableQuery = r2dbcQuery .createQuery (accessor );
170
+ String expectedSql = "SELECT " + ALL_FIELDS + " FROM " + TABLE + " WHERE " + TABLE + ".age <= ?" ;
171
+ assertThat (bindableQuery .get ()).isEqualTo (expectedSql );
172
+ }
173
+
174
+ @ Test
175
+ public void createsQueryToFindAllEntitiesByIntegerAttributeGreaterThan () throws Exception {
176
+ R2dbcQueryMethod queryMethod = getQueryMethod ("findAllByAgeGreaterThan" , Integer .class );
177
+ PartTreeR2dbcQuery r2dbcQuery = new PartTreeR2dbcQuery (queryMethod , databaseClient , r2dbcConverter ,
178
+ dataAccessStrategy );
179
+ RelationalParametersParameterAccessor accessor = getAccessor (queryMethod , new Object []{30 });
180
+ BindableQuery bindableQuery = r2dbcQuery .createQuery (accessor );
181
+ String expectedSql = "SELECT " + ALL_FIELDS + " FROM " + TABLE + " WHERE " + TABLE + ".age > ?" ;
182
+ assertThat (bindableQuery .get ()).isEqualTo (expectedSql );
183
+ }
184
+
185
+ @ Test
186
+ public void createsQueryToFindAllEntitiesByIntegerAttributeGreaterThanEqual () throws Exception {
187
+ R2dbcQueryMethod queryMethod = getQueryMethod ("findAllByAgeGreaterThanEqual" , Integer .class );
188
+ PartTreeR2dbcQuery r2dbcQuery = new PartTreeR2dbcQuery (queryMethod , databaseClient , r2dbcConverter ,
189
+ dataAccessStrategy );
190
+ RelationalParametersParameterAccessor accessor = getAccessor (queryMethod , new Object []{30 });
191
+ BindableQuery bindableQuery = r2dbcQuery .createQuery (accessor );
192
+ String expectedSql = "SELECT " + ALL_FIELDS + " FROM " + TABLE + " WHERE " + TABLE + ".age >= ?" ;
193
+ assertThat (bindableQuery .get ()).isEqualTo (expectedSql );
194
+ }
195
+
151
196
private R2dbcQueryMethod getQueryMethod (String methodName , Class <?>... parameterTypes ) throws Exception {
152
197
Method method = UserRepository .class .getMethod (methodName , parameterTypes );
153
198
return new R2dbcQueryMethod (method , new DefaultRepositoryMetadata (UserRepository .class ),
@@ -168,6 +213,14 @@ private interface UserRepository extends Repository<User, Long> {
168
213
Mono <Boolean > existsByFirstName (String firstName );
169
214
170
215
Flux <User > findAllByDateOfBirthBetween (Date from , Date to );
216
+
217
+ Flux <User > findAllByAgeLessThan (Integer age );
218
+
219
+ Flux <User > findAllByAgeLessThanEqual (Integer age );
220
+
221
+ Flux <User > findAllByAgeGreaterThan (Integer age );
222
+
223
+ Flux <User > findAllByAgeGreaterThanEqual (Integer age );
171
224
}
172
225
173
226
@ Table ("users" )
@@ -178,5 +231,6 @@ private static class User {
178
231
private String firstName ;
179
232
private String lastName ;
180
233
private Date dateOfBirth ;
234
+ private Integer age ;
181
235
}
182
236
}
0 commit comments