1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package issues.gh100;
17
18 import static org.assertj.core.api.Assertions.assertThat;
19 import static org.mybatis.dynamic.sql.SqlBuilder.*;
20
21 import org.junit.jupiter.api.Test;
22 import org.mybatis.dynamic.sql.render.RenderingStrategies;
23 import org.mybatis.dynamic.sql.select.QueryExpressionDSL;
24 import org.mybatis.dynamic.sql.select.SelectDSL;
25 import org.mybatis.dynamic.sql.select.SelectModel;
26 import org.mybatis.dynamic.sql.select.render.SelectStatementProvider;
27
28 class FromJoinWhereTest {
29
30 @Test
31 void testNormalUsage() {
32 SelectStatementProvider selectStatement = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
33 .from(StudentDynamicSqlSupport.student)
34 .join(StudentRegDynamicSqlSupport.studentReg)
35 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid))
36 .where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"))
37 .union()
38 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
39 .from(StudentDynamicSqlSupport.student)
40 .orderBy(StudentDynamicSqlSupport.id)
41 .limit(3)
42 .offset(2)
43 .build()
44 .render(RenderingStrategies.MYBATIS3);
45
46 String expected = "select student.id, student.name, student.idcard"
47 + " from student"
48 + " join student_reg on student.id = student_reg.studentId"
49 + " where student.idcard = #{parameters.p1}"
50 + " union"
51 + " select id, name, idcard"
52 + " from student"
53 + " order by id"
54 + " limit #{parameters.p2}"
55 + " offset #{parameters.p3}";
56
57 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
58 }
59
60 @Test
61 void testFrom() {
62 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
63 .from(StudentDynamicSqlSupport.student);
64
65 String expected = "select id, name, idcard"
66 + " from student";
67
68 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
69
70 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
71 }
72
73 @Test
74 void testFromJoinB1() {
75 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
76 .from(StudentDynamicSqlSupport.student);
77
78 builder1.join(StudentRegDynamicSqlSupport.studentReg)
79 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
80
81 String expected = "select student.id, student.name, student.idcard"
82 + " from student"
83 + " join student_reg on student.id = student_reg.studentId";
84
85 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
86
87 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
88 }
89
90 @Test
91 void testFromJoinB2() {
92 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
93 .from(StudentDynamicSqlSupport.student);
94
95 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
96 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
97
98 String expected = "select student.id, student.name, student.idcard"
99 + " from student"
100 + " join student_reg on student.id = student_reg.studentId";
101
102 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
103
104 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
105 }
106
107 @Test
108 void testfromJoinWhereB1() {
109 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
110 .from(StudentDynamicSqlSupport.student);
111
112 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
113 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
114
115 builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
116
117 String expected = "select student.id, student.name, student.idcard"
118 + " from student"
119 + " join student_reg on student.id = student_reg.studentId"
120 + " where student.idcard = #{parameters.p1}";
121
122 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
123
124 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
125 }
126
127 @Test
128 void testfromJoinWhereB2() {
129 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
130 .from(StudentDynamicSqlSupport.student);
131
132 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
133 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
134
135 builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
136
137 String expected = "select student.id, student.name, student.idcard"
138 + " from student"
139 + " join student_reg on student.id = student_reg.studentId"
140 + " where student.idcard = #{parameters.p1}";
141
142 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
143
144 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
145 }
146
147 @Test
148 void testfromJoinWhereB3() {
149 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
150 .from(StudentDynamicSqlSupport.student);
151
152 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
153 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
154
155 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
156
157 String expected = "select student.id, student.name, student.idcard"
158 + " from student"
159 + " join student_reg on student.id = student_reg.studentId"
160 + " where student.idcard = #{parameters.p1}";
161
162 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
163
164 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
165 }
166
167 @Test
168 void testFromJoinWhereUnionB1() {
169 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
170 .from(StudentDynamicSqlSupport.student);
171
172 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
173 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
174
175 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
176
177 builder3.union()
178 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
179 .from(StudentDynamicSqlSupport.student);
180
181 String expected = "select student.id, student.name, student.idcard"
182 + " from student"
183 + " join student_reg on student.id = student_reg.studentId"
184 + " where student.idcard = #{parameters.p1}"
185 + " union"
186 + " select id, name, idcard"
187 + " from student";
188
189 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
190
191 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
192 }
193
194 @Test
195 void testFromJoinWhereUnionB2() {
196 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
197 .from(StudentDynamicSqlSupport.student);
198
199 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
200 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
201
202 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
203
204 builder3.union()
205 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
206 .from(StudentDynamicSqlSupport.student);
207
208 String expected = "select student.id, student.name, student.idcard"
209 + " from student"
210 + " join student_reg on student.id = student_reg.studentId"
211 + " where student.idcard = #{parameters.p1}"
212 + " union"
213 + " select id, name, idcard"
214 + " from student";
215
216 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
217
218 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
219 }
220
221 @Test
222 void testFromJoinWhereUnionB3() {
223 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
224 .from(StudentDynamicSqlSupport.student);
225
226 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
227 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
228
229 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
230
231 builder3.union()
232 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
233 .from(StudentDynamicSqlSupport.student);
234
235 String expected = "select student.id, student.name, student.idcard"
236 + " from student"
237 + " join student_reg on student.id = student_reg.studentId"
238 + " where student.idcard = #{parameters.p1}"
239 + " union"
240 + " select id, name, idcard"
241 + " from student";
242
243 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
244
245 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
246 }
247
248 @Test
249 void testFromJoinWhereUnionB4() {
250 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
251 .from(StudentDynamicSqlSupport.student);
252
253 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
254 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
255
256 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
257
258 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
259 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
260 .from(StudentDynamicSqlSupport.student);
261
262 String expected = "select student.id, student.name, student.idcard"
263 + " from student"
264 + " join student_reg on student.id = student_reg.studentId"
265 + " where student.idcard = #{parameters.p1}"
266 + " union"
267 + " select id, name, idcard"
268 + " from student";
269
270 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
271
272 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
273 }
274
275 @Test
276 void testFromJoinWhereUnionUnionB1() {
277 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
278 .from(StudentDynamicSqlSupport.student);
279
280 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
281 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
282
283 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
284
285 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder4 = builder3.union()
286 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
287 .from(StudentDynamicSqlSupport.student)
288 .where(StudentDynamicSqlSupport.id, isNotNull());
289
290 builder4.union()
291 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
292 .from(StudentDynamicSqlSupport.student)
293 .where(StudentDynamicSqlSupport.id, isNull());
294
295 String expected = "select student.id, student.name, student.idcard"
296 + " from student"
297 + " join student_reg on student.id = student_reg.studentId"
298 + " where student.idcard = #{parameters.p1}"
299 + " union"
300 + " select id, name, idcard"
301 + " from student"
302 + " where id is not null"
303 + " union"
304 + " select id, name, idcard"
305 + " from student"
306 + " where id is null";
307
308 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
309
310 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
311 }
312
313 @Test
314 void testFromJoinWhereUnionUnionB2() {
315 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
316 .from(StudentDynamicSqlSupport.student);
317
318 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
319 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
320
321 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
322
323 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder4 = builder3.union()
324 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
325 .from(StudentDynamicSqlSupport.student)
326 .where(StudentDynamicSqlSupport.id, isNotNull());
327
328 builder4.union()
329 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
330 .from(StudentDynamicSqlSupport.student)
331 .where(StudentDynamicSqlSupport.id, isNull());
332
333 String expected = "select student.id, student.name, student.idcard"
334 + " from student"
335 + " join student_reg on student.id = student_reg.studentId"
336 + " where student.idcard = #{parameters.p1}"
337 + " union"
338 + " select id, name, idcard"
339 + " from student"
340 + " where id is not null"
341 + " union"
342 + " select id, name, idcard"
343 + " from student"
344 + " where id is null";
345
346 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
347
348 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
349 }
350
351 @Test
352 void testFromJoinWhereUnionUnionB3() {
353 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
354 .from(StudentDynamicSqlSupport.student);
355
356 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
357 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
358
359 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
360
361 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder4 = builder3.union()
362 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
363 .from(StudentDynamicSqlSupport.student)
364 .where(StudentDynamicSqlSupport.id, isNotNull());
365
366 builder4.union()
367 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
368 .from(StudentDynamicSqlSupport.student)
369 .where(StudentDynamicSqlSupport.id, isNull());
370
371 String expected = "select student.id, student.name, student.idcard"
372 + " from student"
373 + " join student_reg on student.id = student_reg.studentId"
374 + " where student.idcard = #{parameters.p1}"
375 + " union"
376 + " select id, name, idcard"
377 + " from student"
378 + " where id is not null"
379 + " union"
380 + " select id, name, idcard"
381 + " from student"
382 + " where id is null";
383
384 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
385
386 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
387 }
388
389 @Test
390 void testFromJoinWhereUnionUnionB4() {
391 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
392 .from(StudentDynamicSqlSupport.student);
393
394 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
395 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
396
397 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
398
399 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder4 = builder3.union()
400 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
401 .from(StudentDynamicSqlSupport.student)
402 .where(StudentDynamicSqlSupport.id, isNotNull());
403
404 builder4.union()
405 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
406 .from(StudentDynamicSqlSupport.student)
407 .where(StudentDynamicSqlSupport.id, isNull());
408
409 String expected = "select student.id, student.name, student.idcard"
410 + " from student"
411 + " join student_reg on student.id = student_reg.studentId"
412 + " where student.idcard = #{parameters.p1}"
413 + " union"
414 + " select id, name, idcard"
415 + " from student"
416 + " where id is not null"
417 + " union"
418 + " select id, name, idcard"
419 + " from student"
420 + " where id is null";
421
422 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
423
424 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
425 }
426
427 @Test
428 void testFromJoinWhereUnionUnionB5() {
429 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
430 .from(StudentDynamicSqlSupport.student);
431
432 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
433 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
434
435 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
436
437 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder4 = builder3.union()
438 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
439 .from(StudentDynamicSqlSupport.student)
440 .where(StudentDynamicSqlSupport.id, isNotNull());
441
442 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder5 = builder4.union()
443 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
444 .from(StudentDynamicSqlSupport.student)
445 .where(StudentDynamicSqlSupport.id, isNull());
446
447 String expected = "select student.id, student.name, student.idcard"
448 + " from student"
449 + " join student_reg on student.id = student_reg.studentId"
450 + " where student.idcard = #{parameters.p1}"
451 + " union"
452 + " select id, name, idcard"
453 + " from student"
454 + " where id is not null"
455 + " union"
456 + " select id, name, idcard"
457 + " from student"
458 + " where id is null";
459
460 SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategies.MYBATIS3);
461
462 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
463 }
464
465 @Test
466 void testFromJoinWhereUnionOrderByB1() {
467 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
468 .from(StudentDynamicSqlSupport.student);
469
470 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
471 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
472
473 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
474
475 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
476 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
477 .from(StudentDynamicSqlSupport.student);
478
479 builder4.orderBy(StudentDynamicSqlSupport.id);
480
481 String expected = "select student.id, student.name, student.idcard"
482 + " from student"
483 + " join student_reg on student.id = student_reg.studentId"
484 + " where student.idcard = #{parameters.p1}"
485 + " union"
486 + " select id, name, idcard"
487 + " from student"
488 + " order by id";
489
490 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
491
492 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
493 }
494
495 @Test
496 void testFromJoinWhereUnionOrderByB2() {
497 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
498 .from(StudentDynamicSqlSupport.student);
499
500 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
501 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
502
503 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
504
505 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
506 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
507 .from(StudentDynamicSqlSupport.student);
508
509 builder4.orderBy(StudentDynamicSqlSupport.id);
510
511 String expected = "select student.id, student.name, student.idcard"
512 + " from student"
513 + " join student_reg on student.id = student_reg.studentId"
514 + " where student.idcard = #{parameters.p1}"
515 + " union"
516 + " select id, name, idcard"
517 + " from student"
518 + " order by id";
519
520 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
521
522 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
523 }
524
525 @Test
526 void testFromJoinWhereUnionOrderByB3() {
527 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
528 .from(StudentDynamicSqlSupport.student);
529
530 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
531 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
532
533 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
534
535 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
536 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
537 .from(StudentDynamicSqlSupport.student);
538
539 builder4.orderBy(StudentDynamicSqlSupport.id);
540
541 String expected = "select student.id, student.name, student.idcard"
542 + " from student"
543 + " join student_reg on student.id = student_reg.studentId"
544 + " where student.idcard = #{parameters.p1}"
545 + " union"
546 + " select id, name, idcard"
547 + " from student"
548 + " order by id";
549
550 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
551
552 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
553 }
554
555 @Test
556 void testFromJoinWhereUnionOrderByB4() {
557 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
558 .from(StudentDynamicSqlSupport.student);
559
560 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
561 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
562
563 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
564
565 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
566 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
567 .from(StudentDynamicSqlSupport.student);
568
569 builder4.orderBy(StudentDynamicSqlSupport.id);
570
571 String expected = "select student.id, student.name, student.idcard"
572 + " from student"
573 + " join student_reg on student.id = student_reg.studentId"
574 + " where student.idcard = #{parameters.p1}"
575 + " union"
576 + " select id, name, idcard"
577 + " from student"
578 + " order by id";
579
580 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
581
582 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
583 }
584
585 @Test
586 void testFromJoinWhereUnionOrderByB5() {
587 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
588 .from(StudentDynamicSqlSupport.student);
589
590 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
591 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
592
593 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
594
595 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
596 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
597 .from(StudentDynamicSqlSupport.student);
598
599 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
600
601 String expected = "select student.id, student.name, student.idcard"
602 + " from student"
603 + " join student_reg on student.id = student_reg.studentId"
604 + " where student.idcard = #{parameters.p1}"
605 + " union"
606 + " select id, name, idcard"
607 + " from student"
608 + " order by id";
609
610 SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategies.MYBATIS3);
611
612 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
613 }
614
615 @Test
616 void testFromJoinWhereUnionOrderByLimitB1() {
617 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
618 .from(StudentDynamicSqlSupport.student);
619
620 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
621 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
622
623 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
624
625 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
626 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
627 .from(StudentDynamicSqlSupport.student);
628
629 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
630
631 builder5.limit(3);
632
633 String expected = "select student.id, student.name, student.idcard"
634 + " from student"
635 + " join student_reg on student.id = student_reg.studentId"
636 + " where student.idcard = #{parameters.p1}"
637 + " union"
638 + " select id, name, idcard"
639 + " from student"
640 + " order by id"
641 + " limit #{parameters.p2}";
642
643 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
644
645 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
646 }
647
648 @Test
649 void testFromJoinWhereUnionOrderByLimitB2() {
650 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
651 .from(StudentDynamicSqlSupport.student);
652
653 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
654 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
655
656 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
657
658 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
659 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
660 .from(StudentDynamicSqlSupport.student);
661
662 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
663
664 builder5.limit(3);
665
666 String expected = "select student.id, student.name, student.idcard"
667 + " from student"
668 + " join student_reg on student.id = student_reg.studentId"
669 + " where student.idcard = #{parameters.p1}"
670 + " union"
671 + " select id, name, idcard"
672 + " from student"
673 + " order by id"
674 + " limit #{parameters.p2}";
675
676 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
677
678 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
679 }
680
681 @Test
682 void testFromJoinWhereUnionOrderByLimitB3() {
683 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
684 .from(StudentDynamicSqlSupport.student);
685
686 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
687 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
688
689 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
690
691 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
692 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
693 .from(StudentDynamicSqlSupport.student);
694
695 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
696
697 builder5.limit(3);
698
699 String expected = "select student.id, student.name, student.idcard"
700 + " from student"
701 + " join student_reg on student.id = student_reg.studentId"
702 + " where student.idcard = #{parameters.p1}"
703 + " union"
704 + " select id, name, idcard"
705 + " from student"
706 + " order by id"
707 + " limit #{parameters.p2}";
708
709 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
710
711 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
712 }
713
714 @Test
715 void testFromJoinWhereUnionOrderByLimitB4() {
716 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
717 .from(StudentDynamicSqlSupport.student);
718
719 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
720 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
721
722 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
723
724 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
725 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
726 .from(StudentDynamicSqlSupport.student);
727
728 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
729
730 builder5.limit(3);
731
732 String expected = "select student.id, student.name, student.idcard"
733 + " from student"
734 + " join student_reg on student.id = student_reg.studentId"
735 + " where student.idcard = #{parameters.p1}"
736 + " union"
737 + " select id, name, idcard"
738 + " from student"
739 + " order by id"
740 + " limit #{parameters.p2}";
741
742 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
743
744 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
745 }
746
747 @Test
748 void testFromJoinWhereUnionOrderByLimitB5() {
749 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
750 .from(StudentDynamicSqlSupport.student);
751
752 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
753 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
754
755 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
756
757 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
758 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
759 .from(StudentDynamicSqlSupport.student);
760
761 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
762
763 builder5.limit(3);
764
765 String expected = "select student.id, student.name, student.idcard"
766 + " from student"
767 + " join student_reg on student.id = student_reg.studentId"
768 + " where student.idcard = #{parameters.p1}"
769 + " union"
770 + " select id, name, idcard"
771 + " from student"
772 + " order by id"
773 + " limit #{parameters.p2}";
774
775 SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategies.MYBATIS3);
776
777 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
778 }
779
780 @Test
781 void testFromJoinWhereUnionOrderByLimitB6() {
782 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
783 .from(StudentDynamicSqlSupport.student);
784
785 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
786 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
787
788 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
789
790 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
791 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
792 .from(StudentDynamicSqlSupport.student);
793
794 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
795
796 var builder6 = builder5.limit(3);
797
798 String expected = "select student.id, student.name, student.idcard"
799 + " from student"
800 + " join student_reg on student.id = student_reg.studentId"
801 + " where student.idcard = #{parameters.p1}"
802 + " union"
803 + " select id, name, idcard"
804 + " from student"
805 + " order by id"
806 + " limit #{parameters.p2}";
807
808 SelectStatementProvider selectStatement = builder6.build().render(RenderingStrategies.MYBATIS3);
809
810 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
811 }
812
813 @Test
814 void testFromJoinWhereUnionOrderByLimitOffsetB1() {
815 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
816 .from(StudentDynamicSqlSupport.student);
817
818 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
819 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
820
821 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
822
823 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
824 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
825 .from(StudentDynamicSqlSupport.student);
826
827 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
828
829 var builder6 = builder5.limit(3);
830
831 builder6.offset(2);
832
833 String expected = "select student.id, student.name, student.idcard"
834 + " from student"
835 + " join student_reg on student.id = student_reg.studentId"
836 + " where student.idcard = #{parameters.p1}"
837 + " union"
838 + " select id, name, idcard"
839 + " from student"
840 + " order by id"
841 + " limit #{parameters.p2}"
842 + " offset #{parameters.p3}";
843
844 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
845
846 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
847 }
848
849 @Test
850 void testFromJoinWhereUnionOrderByLimitOffsetB2() {
851 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
852 .from(StudentDynamicSqlSupport.student);
853
854 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
855 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
856
857 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
858
859 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
860 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
861 .from(StudentDynamicSqlSupport.student);
862
863 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
864
865 var builder6 = builder5.limit(3);
866
867 builder6.offset(2);
868
869 String expected = "select student.id, student.name, student.idcard"
870 + " from student"
871 + " join student_reg on student.id = student_reg.studentId"
872 + " where student.idcard = #{parameters.p1}"
873 + " union"
874 + " select id, name, idcard"
875 + " from student"
876 + " order by id"
877 + " limit #{parameters.p2}"
878 + " offset #{parameters.p3}";
879
880 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
881
882 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
883 }
884
885 @Test
886 void testFromJoinWhereUnionOrderByLimitOffsetB3() {
887 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
888 .from(StudentDynamicSqlSupport.student);
889
890 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
891 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
892
893 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
894
895 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
896 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
897 .from(StudentDynamicSqlSupport.student);
898
899 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
900
901 var builder6 = builder5.limit(3);
902
903 builder6.offset(2);
904
905 String expected = "select student.id, student.name, student.idcard"
906 + " from student"
907 + " join student_reg on student.id = student_reg.studentId"
908 + " where student.idcard = #{parameters.p1}"
909 + " union"
910 + " select id, name, idcard"
911 + " from student"
912 + " order by id"
913 + " limit #{parameters.p2}"
914 + " offset #{parameters.p3}";
915
916 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
917
918 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
919 }
920
921 @Test
922 void testFromJoinWhereUnionOrderByLimitOffsetB4() {
923 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
924 .from(StudentDynamicSqlSupport.student);
925
926 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
927 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
928
929 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
930
931 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
932 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
933 .from(StudentDynamicSqlSupport.student);
934
935 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
936
937 var builder6 = builder5.limit(3);
938
939 builder6.offset(2);
940
941 String expected = "select student.id, student.name, student.idcard"
942 + " from student"
943 + " join student_reg on student.id = student_reg.studentId"
944 + " where student.idcard = #{parameters.p1}"
945 + " union"
946 + " select id, name, idcard"
947 + " from student"
948 + " order by id"
949 + " limit #{parameters.p2}"
950 + " offset #{parameters.p3}";
951
952 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
953
954 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
955 }
956
957 @Test
958 void testFromJoinWhereUnionOrderByLimitOffsetB5() {
959 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
960 .from(StudentDynamicSqlSupport.student);
961
962 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
963 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
964
965 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
966
967 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
968 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
969 .from(StudentDynamicSqlSupport.student);
970
971 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
972
973 var builder6 = builder5.limit(3);
974
975 builder6.offset(2);
976
977 String expected = "select student.id, student.name, student.idcard"
978 + " from student"
979 + " join student_reg on student.id = student_reg.studentId"
980 + " where student.idcard = #{parameters.p1}"
981 + " union"
982 + " select id, name, idcard"
983 + " from student"
984 + " order by id"
985 + " limit #{parameters.p2}"
986 + " offset #{parameters.p3}";
987
988 SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategies.MYBATIS3);
989
990 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
991 }
992
993 @Test
994 void testFromJoinWhereUnionOrderByLimitOffsetB6() {
995 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
996 .from(StudentDynamicSqlSupport.student);
997
998 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
999 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1000
1001 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1002
1003 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1004 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1005 .from(StudentDynamicSqlSupport.student);
1006
1007 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1008
1009 var builder6 = builder5.limit(3);
1010
1011 builder6.offset(2);
1012
1013 String expected = "select student.id, student.name, student.idcard"
1014 + " from student"
1015 + " join student_reg on student.id = student_reg.studentId"
1016 + " where student.idcard = #{parameters.p1}"
1017 + " union"
1018 + " select id, name, idcard"
1019 + " from student"
1020 + " order by id"
1021 + " limit #{parameters.p2}"
1022 + " offset #{parameters.p3}";
1023
1024 SelectStatementProvider selectStatement = builder6.build().render(RenderingStrategies.MYBATIS3);
1025
1026 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1027 }
1028
1029 @Test
1030 void testFromJoinWhereUnionOrderByLimitOffsetB7() {
1031 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1032 .from(StudentDynamicSqlSupport.student);
1033
1034 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1035 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1036
1037 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1038
1039 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1040 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1041 .from(StudentDynamicSqlSupport.student);
1042
1043 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1044
1045 var builder6 = builder5.limit(3);
1046
1047 var builder7 = builder6.offset(2);
1048
1049 String expected = "select student.id, student.name, student.idcard"
1050 + " from student"
1051 + " join student_reg on student.id = student_reg.studentId"
1052 + " where student.idcard = #{parameters.p1}"
1053 + " union"
1054 + " select id, name, idcard"
1055 + " from student"
1056 + " order by id"
1057 + " limit #{parameters.p2}"
1058 + " offset #{parameters.p3}";
1059
1060 SelectStatementProvider selectStatement = builder7.build().render(RenderingStrategies.MYBATIS3);
1061
1062 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1063 }
1064
1065 @Test
1066 void testFromJoinWhereUnionOrderByOffsetB1() {
1067 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1068 .from(StudentDynamicSqlSupport.student);
1069
1070 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1071 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1072
1073 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1074
1075 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1076 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1077 .from(StudentDynamicSqlSupport.student);
1078
1079 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1080
1081 builder5.offset(2);
1082
1083 String expected = "select student.id, student.name, student.idcard"
1084 + " from student"
1085 + " join student_reg on student.id = student_reg.studentId"
1086 + " where student.idcard = #{parameters.p1}"
1087 + " union"
1088 + " select id, name, idcard"
1089 + " from student"
1090 + " order by id"
1091 + " offset #{parameters.p2} rows";
1092
1093 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
1094
1095 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1096
1097 }
1098
1099 @Test
1100 void testFromJoinWhereUnionOrderByOffsetB2() {
1101 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1102 .from(StudentDynamicSqlSupport.student);
1103
1104 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1105 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1106
1107 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1108
1109 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1110 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1111 .from(StudentDynamicSqlSupport.student);
1112
1113 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1114
1115 builder5.offset(2);
1116
1117 String expected = "select student.id, student.name, student.idcard"
1118 + " from student"
1119 + " join student_reg on student.id = student_reg.studentId"
1120 + " where student.idcard = #{parameters.p1}"
1121 + " union"
1122 + " select id, name, idcard"
1123 + " from student"
1124 + " order by id"
1125 + " offset #{parameters.p2} rows";
1126
1127 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
1128
1129 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1130
1131 }
1132
1133 @Test
1134 void testFromJoinWhereUnionOrderByOffsetB3() {
1135 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1136 .from(StudentDynamicSqlSupport.student);
1137
1138 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1139 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1140
1141 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1142
1143 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1144 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1145 .from(StudentDynamicSqlSupport.student);
1146
1147 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1148
1149 builder5.offset(2);
1150
1151 String expected = "select student.id, student.name, student.idcard"
1152 + " from student"
1153 + " join student_reg on student.id = student_reg.studentId"
1154 + " where student.idcard = #{parameters.p1}"
1155 + " union"
1156 + " select id, name, idcard"
1157 + " from student"
1158 + " order by id"
1159 + " offset #{parameters.p2} rows";
1160
1161 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
1162
1163 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1164
1165 }
1166
1167 @Test
1168 void testFromJoinWhereUnionOrderByOffsetB4() {
1169 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1170 .from(StudentDynamicSqlSupport.student);
1171
1172 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1173 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1174
1175 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1176
1177 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1178 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1179 .from(StudentDynamicSqlSupport.student);
1180
1181 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1182
1183 builder5.offset(2);
1184
1185 String expected = "select student.id, student.name, student.idcard"
1186 + " from student"
1187 + " join student_reg on student.id = student_reg.studentId"
1188 + " where student.idcard = #{parameters.p1}"
1189 + " union"
1190 + " select id, name, idcard"
1191 + " from student"
1192 + " order by id"
1193 + " offset #{parameters.p2} rows";
1194
1195 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
1196
1197 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1198
1199 }
1200
1201 @Test
1202 void testFromJoinWhereUnionOrderByOffsetB5() {
1203 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1204 .from(StudentDynamicSqlSupport.student);
1205
1206 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1207 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1208
1209 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1210
1211 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1212 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1213 .from(StudentDynamicSqlSupport.student);
1214
1215 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1216
1217 builder5.offset(2);
1218
1219 String expected = "select student.id, student.name, student.idcard"
1220 + " from student"
1221 + " join student_reg on student.id = student_reg.studentId"
1222 + " where student.idcard = #{parameters.p1}"
1223 + " union"
1224 + " select id, name, idcard"
1225 + " from student"
1226 + " order by id"
1227 + " offset #{parameters.p2} rows";
1228
1229 SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategies.MYBATIS3);
1230
1231 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1232
1233 }
1234
1235 @Test
1236 void testFromJoinWhereUnionOrderByOffsetB6() {
1237 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1238 .from(StudentDynamicSqlSupport.student);
1239
1240 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1241 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1242
1243 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1244
1245 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1246 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1247 .from(StudentDynamicSqlSupport.student);
1248
1249 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1250
1251 var builder6 = builder5.offset(2);
1252
1253 String expected = "select student.id, student.name, student.idcard"
1254 + " from student"
1255 + " join student_reg on student.id = student_reg.studentId"
1256 + " where student.idcard = #{parameters.p1}"
1257 + " union"
1258 + " select id, name, idcard"
1259 + " from student"
1260 + " order by id"
1261 + " offset #{parameters.p2} rows";
1262
1263 SelectStatementProvider selectStatement = builder6.build().render(RenderingStrategies.MYBATIS3);
1264
1265 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1266
1267 }
1268
1269 @Test
1270 void testFromJoinWhereUnionOrderByOffsetFetchFirstB1() {
1271 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1272 .from(StudentDynamicSqlSupport.student);
1273
1274 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1275 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1276
1277 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1278
1279 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1280 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1281 .from(StudentDynamicSqlSupport.student);
1282
1283 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1284
1285 var builder6 = builder5.offset(2);
1286
1287 builder6.fetchFirst(3).rowsOnly();
1288
1289 String expected = "select student.id, student.name, student.idcard"
1290 + " from student"
1291 + " join student_reg on student.id = student_reg.studentId"
1292 + " where student.idcard = #{parameters.p1}"
1293 + " union"
1294 + " select id, name, idcard"
1295 + " from student"
1296 + " order by id"
1297 + " offset #{parameters.p2} rows"
1298 + " fetch first #{parameters.p3} rows only";
1299
1300 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
1301
1302 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1303 }
1304
1305 @Test
1306 void testFromJoinWhereUnionOrderByOffsetFetchFirstB2() {
1307 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1308 .from(StudentDynamicSqlSupport.student);
1309
1310 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1311 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1312
1313 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1314
1315 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1316 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1317 .from(StudentDynamicSqlSupport.student);
1318
1319 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1320
1321 var builder6 = builder5.offset(2);
1322
1323 builder6.fetchFirst(3).rowsOnly();
1324
1325 String expected = "select student.id, student.name, student.idcard"
1326 + " from student"
1327 + " join student_reg on student.id = student_reg.studentId"
1328 + " where student.idcard = #{parameters.p1}"
1329 + " union"
1330 + " select id, name, idcard"
1331 + " from student"
1332 + " order by id"
1333 + " offset #{parameters.p2} rows"
1334 + " fetch first #{parameters.p3} rows only";
1335
1336 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
1337
1338 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1339 }
1340
1341 @Test
1342 void testFromJoinWhereUnionOrderByOffsetFetchFirstB3() {
1343 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1344 .from(StudentDynamicSqlSupport.student);
1345
1346 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1347 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1348
1349 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1350
1351 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1352 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1353 .from(StudentDynamicSqlSupport.student);
1354
1355 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1356
1357 var builder6 = builder5.offset(2);
1358
1359 builder6.fetchFirst(3).rowsOnly();
1360
1361 String expected = "select student.id, student.name, student.idcard"
1362 + " from student"
1363 + " join student_reg on student.id = student_reg.studentId"
1364 + " where student.idcard = #{parameters.p1}"
1365 + " union"
1366 + " select id, name, idcard"
1367 + " from student"
1368 + " order by id"
1369 + " offset #{parameters.p2} rows"
1370 + " fetch first #{parameters.p3} rows only";
1371
1372 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
1373
1374 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1375 }
1376
1377 @Test
1378 void testFromJoinWhereUnionOrderByOffsetFetchFirstB4() {
1379 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1380 .from(StudentDynamicSqlSupport.student);
1381
1382 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1383 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1384
1385 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1386
1387 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1388 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1389 .from(StudentDynamicSqlSupport.student);
1390
1391 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1392
1393 var builder6 = builder5.offset(2);
1394
1395 builder6.fetchFirst(3).rowsOnly();
1396
1397 String expected = "select student.id, student.name, student.idcard"
1398 + " from student"
1399 + " join student_reg on student.id = student_reg.studentId"
1400 + " where student.idcard = #{parameters.p1}"
1401 + " union"
1402 + " select id, name, idcard"
1403 + " from student"
1404 + " order by id"
1405 + " offset #{parameters.p2} rows"
1406 + " fetch first #{parameters.p3} rows only";
1407
1408 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
1409
1410 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1411 }
1412
1413 @Test
1414 void testFromJoinWhereUnionOrderByOffsetFetchFirstB5() {
1415 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1416 .from(StudentDynamicSqlSupport.student);
1417
1418 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1419 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1420
1421 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1422
1423 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1424 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1425 .from(StudentDynamicSqlSupport.student);
1426
1427 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1428
1429 var builder6 = builder5.offset(2);
1430
1431 builder6.fetchFirst(3).rowsOnly();
1432
1433 String expected = "select student.id, student.name, student.idcard"
1434 + " from student"
1435 + " join student_reg on student.id = student_reg.studentId"
1436 + " where student.idcard = #{parameters.p1}"
1437 + " union"
1438 + " select id, name, idcard"
1439 + " from student"
1440 + " order by id"
1441 + " offset #{parameters.p2} rows"
1442 + " fetch first #{parameters.p3} rows only";
1443
1444 SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategies.MYBATIS3);
1445
1446 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1447 }
1448
1449 @Test
1450 void testFromJoinWhereUnionOrderByOffsetFetchFirstB6() {
1451 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1452 .from(StudentDynamicSqlSupport.student);
1453
1454 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1455 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1456
1457 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1458
1459 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1460 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1461 .from(StudentDynamicSqlSupport.student);
1462
1463 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1464
1465 var builder6 = builder5.offset(2);
1466
1467 builder6.fetchFirst(3).rowsOnly();
1468
1469 String expected = "select student.id, student.name, student.idcard"
1470 + " from student"
1471 + " join student_reg on student.id = student_reg.studentId"
1472 + " where student.idcard = #{parameters.p1}"
1473 + " union"
1474 + " select id, name, idcard"
1475 + " from student"
1476 + " order by id"
1477 + " offset #{parameters.p2} rows"
1478 + " fetch first #{parameters.p3} rows only";
1479
1480 SelectStatementProvider selectStatement = builder6.build().render(RenderingStrategies.MYBATIS3);
1481
1482 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1483 }
1484
1485 @Test
1486 void testFromJoinWhereUnionOrderByOffsetFetchFirstB7() {
1487 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1488 .from(StudentDynamicSqlSupport.student);
1489
1490 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1491 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1492
1493 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1494
1495 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1496 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1497 .from(StudentDynamicSqlSupport.student);
1498
1499 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1500
1501 var builder6 = builder5.offset(2);
1502
1503 var builder7 = builder6.fetchFirst(3).rowsOnly();
1504
1505 String expected = "select student.id, student.name, student.idcard"
1506 + " from student"
1507 + " join student_reg on student.id = student_reg.studentId"
1508 + " where student.idcard = #{parameters.p1}"
1509 + " union"
1510 + " select id, name, idcard"
1511 + " from student"
1512 + " order by id"
1513 + " offset #{parameters.p2} rows"
1514 + " fetch first #{parameters.p3} rows only";
1515
1516 SelectStatementProvider selectStatement = builder7.build().render(RenderingStrategies.MYBATIS3);
1517
1518 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1519 }
1520
1521 @Test
1522 void testFromJoinWhereUnionOrderByFetchFirstB1() {
1523 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1524 .from(StudentDynamicSqlSupport.student);
1525
1526 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1527 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1528
1529 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1530
1531 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1532 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1533 .from(StudentDynamicSqlSupport.student);
1534
1535 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1536
1537 builder5.fetchFirst(3).rowsOnly();
1538
1539 String expected = "select student.id, student.name, student.idcard"
1540 + " from student"
1541 + " join student_reg on student.id = student_reg.studentId"
1542 + " where student.idcard = #{parameters.p1}"
1543 + " union"
1544 + " select id, name, idcard"
1545 + " from student"
1546 + " order by id"
1547 + " fetch first #{parameters.p2} rows only";
1548
1549 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
1550
1551 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1552 }
1553
1554 @Test
1555 void testFromJoinWhereUnionOrderByFetchFirstB2() {
1556 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1557 .from(StudentDynamicSqlSupport.student);
1558
1559 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1560 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1561
1562 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1563
1564 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1565 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1566 .from(StudentDynamicSqlSupport.student);
1567
1568 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1569
1570 builder5.fetchFirst(3).rowsOnly();
1571
1572 String expected = "select student.id, student.name, student.idcard"
1573 + " from student"
1574 + " join student_reg on student.id = student_reg.studentId"
1575 + " where student.idcard = #{parameters.p1}"
1576 + " union"
1577 + " select id, name, idcard"
1578 + " from student"
1579 + " order by id"
1580 + " fetch first #{parameters.p2} rows only";
1581
1582 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
1583
1584 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1585 }
1586
1587 @Test
1588 void testFromJoinWhereUnionOrderByFetchFirstB3() {
1589 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1590 .from(StudentDynamicSqlSupport.student);
1591
1592 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1593 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1594
1595 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1596
1597 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1598 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1599 .from(StudentDynamicSqlSupport.student);
1600
1601 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1602
1603 builder5.fetchFirst(3).rowsOnly();
1604
1605 String expected = "select student.id, student.name, student.idcard"
1606 + " from student"
1607 + " join student_reg on student.id = student_reg.studentId"
1608 + " where student.idcard = #{parameters.p1}"
1609 + " union"
1610 + " select id, name, idcard"
1611 + " from student"
1612 + " order by id"
1613 + " fetch first #{parameters.p2} rows only";
1614
1615 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
1616
1617 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1618 }
1619
1620 @Test
1621 void testFromJoinWhereUnionOrderByFetchFirstB4() {
1622 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1623 .from(StudentDynamicSqlSupport.student);
1624
1625 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1626 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1627
1628 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1629
1630 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1631 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1632 .from(StudentDynamicSqlSupport.student);
1633
1634 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1635
1636 builder5.fetchFirst(3).rowsOnly();
1637
1638 String expected = "select student.id, student.name, student.idcard"
1639 + " from student"
1640 + " join student_reg on student.id = student_reg.studentId"
1641 + " where student.idcard = #{parameters.p1}"
1642 + " union"
1643 + " select id, name, idcard"
1644 + " from student"
1645 + " order by id"
1646 + " fetch first #{parameters.p2} rows only";
1647
1648 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
1649
1650 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1651 }
1652
1653 @Test
1654 void testFromJoinWhereUnionOrderByFetchFirstB5() {
1655 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1656 .from(StudentDynamicSqlSupport.student);
1657
1658 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1659 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1660
1661 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1662
1663 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1664 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1665 .from(StudentDynamicSqlSupport.student);
1666
1667 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1668
1669 builder5.fetchFirst(3).rowsOnly();
1670
1671 String expected = "select student.id, student.name, student.idcard"
1672 + " from student"
1673 + " join student_reg on student.id = student_reg.studentId"
1674 + " where student.idcard = #{parameters.p1}"
1675 + " union"
1676 + " select id, name, idcard"
1677 + " from student"
1678 + " order by id"
1679 + " fetch first #{parameters.p2} rows only";
1680
1681 SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategies.MYBATIS3);
1682
1683 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1684 }
1685
1686 @Test
1687 void testFromJoinWhereUnionOrderByFetchFirstB6() {
1688 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1689 .from(StudentDynamicSqlSupport.student);
1690
1691 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1692 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1693
1694 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1695
1696 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1697 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1698 .from(StudentDynamicSqlSupport.student);
1699
1700 SelectDSL<SelectModel> builder5 = builder4.orderBy(StudentDynamicSqlSupport.id);
1701
1702 var builder6 = builder5.fetchFirst(3).rowsOnly();
1703
1704 String expected = "select student.id, student.name, student.idcard"
1705 + " from student"
1706 + " join student_reg on student.id = student_reg.studentId"
1707 + " where student.idcard = #{parameters.p1}"
1708 + " union"
1709 + " select id, name, idcard"
1710 + " from student"
1711 + " order by id"
1712 + " fetch first #{parameters.p2} rows only";
1713
1714 SelectStatementProvider selectStatement = builder6.build().render(RenderingStrategies.MYBATIS3);
1715
1716 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1717 }
1718
1719 @Test
1720 void testFromJoinWhereUnionLimitB1() {
1721 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1722 .from(StudentDynamicSqlSupport.student);
1723
1724 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1725 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1726
1727 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1728
1729 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1730 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1731 .from(StudentDynamicSqlSupport.student);
1732
1733 builder4.limit(3);
1734
1735 String expected = "select student.id, student.name, student.idcard"
1736 + " from student"
1737 + " join student_reg on student.id = student_reg.studentId"
1738 + " where student.idcard = #{parameters.p1}"
1739 + " union"
1740 + " select id, name, idcard"
1741 + " from student"
1742 + " limit #{parameters.p2}";
1743
1744 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
1745
1746 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1747 }
1748
1749 @Test
1750 void testFromJoinWhereUnionLimitB2() {
1751 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1752 .from(StudentDynamicSqlSupport.student);
1753
1754 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1755 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1756
1757 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1758
1759 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1760 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1761 .from(StudentDynamicSqlSupport.student);
1762
1763 builder4.limit(3);
1764
1765 String expected = "select student.id, student.name, student.idcard"
1766 + " from student"
1767 + " join student_reg on student.id = student_reg.studentId"
1768 + " where student.idcard = #{parameters.p1}"
1769 + " union"
1770 + " select id, name, idcard"
1771 + " from student"
1772 + " limit #{parameters.p2}";
1773
1774 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
1775
1776 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1777 }
1778
1779 @Test
1780 void testFromJoinWhereUnionLimitB3() {
1781 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1782 .from(StudentDynamicSqlSupport.student);
1783
1784 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1785 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1786
1787 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1788
1789 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1790 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1791 .from(StudentDynamicSqlSupport.student);
1792
1793 builder4.limit(3);
1794
1795 String expected = "select student.id, student.name, student.idcard"
1796 + " from student"
1797 + " join student_reg on student.id = student_reg.studentId"
1798 + " where student.idcard = #{parameters.p1}"
1799 + " union"
1800 + " select id, name, idcard"
1801 + " from student"
1802 + " limit #{parameters.p2}";
1803
1804 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
1805
1806 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1807 }
1808
1809 @Test
1810 void testFromJoinWhereUnionLimitB4() {
1811 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1812 .from(StudentDynamicSqlSupport.student);
1813
1814 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1815 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1816
1817 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1818
1819 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1820 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1821 .from(StudentDynamicSqlSupport.student);
1822
1823 builder4.limit(3);
1824
1825 String expected = "select student.id, student.name, student.idcard"
1826 + " from student"
1827 + " join student_reg on student.id = student_reg.studentId"
1828 + " where student.idcard = #{parameters.p1}"
1829 + " union"
1830 + " select id, name, idcard"
1831 + " from student"
1832 + " limit #{parameters.p2}";
1833
1834 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
1835
1836 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1837 }
1838
1839 @Test
1840 void testFromJoinWhereUnionLimitB5() {
1841 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1842 .from(StudentDynamicSqlSupport.student);
1843
1844 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1845 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1846
1847 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1848
1849 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1850 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1851 .from(StudentDynamicSqlSupport.student);
1852
1853 var builder5 = builder4.limit(3);
1854
1855 String expected = "select student.id, student.name, student.idcard"
1856 + " from student"
1857 + " join student_reg on student.id = student_reg.studentId"
1858 + " where student.idcard = #{parameters.p1}"
1859 + " union"
1860 + " select id, name, idcard"
1861 + " from student"
1862 + " limit #{parameters.p2}";
1863
1864 SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategies.MYBATIS3);
1865
1866 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1867 }
1868
1869 @Test
1870 void testFromJoinWhereUnionLimitOffsetB1() {
1871 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1872 .from(StudentDynamicSqlSupport.student);
1873
1874 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1875 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1876
1877 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1878
1879 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1880 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1881 .from(StudentDynamicSqlSupport.student);
1882
1883 var builder5 = builder4.limit(3);
1884
1885 builder5.offset(2);
1886
1887 String expected = "select student.id, student.name, student.idcard"
1888 + " from student"
1889 + " join student_reg on student.id = student_reg.studentId"
1890 + " where student.idcard = #{parameters.p1}"
1891 + " union"
1892 + " select id, name, idcard"
1893 + " from student"
1894 + " limit #{parameters.p2}"
1895 + " offset #{parameters.p3}";
1896
1897 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
1898
1899 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1900 }
1901
1902 @Test
1903 void testFromJoinWhereUnionLimitOffsetB2() {
1904 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1905 .from(StudentDynamicSqlSupport.student);
1906
1907 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1908 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1909
1910 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1911
1912 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1913 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1914 .from(StudentDynamicSqlSupport.student);
1915
1916 var builder5 = builder4.limit(3);
1917
1918 builder5.offset(2);
1919
1920 String expected = "select student.id, student.name, student.idcard"
1921 + " from student"
1922 + " join student_reg on student.id = student_reg.studentId"
1923 + " where student.idcard = #{parameters.p1}"
1924 + " union"
1925 + " select id, name, idcard"
1926 + " from student"
1927 + " limit #{parameters.p2}"
1928 + " offset #{parameters.p3}";
1929
1930 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
1931
1932 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1933 }
1934
1935 @Test
1936 void testFromJoinWhereUnionLimitOffsetB3() {
1937 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1938 .from(StudentDynamicSqlSupport.student);
1939
1940 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1941 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1942
1943 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1944
1945 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1946 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1947 .from(StudentDynamicSqlSupport.student);
1948
1949 var builder5 = builder4.limit(3);
1950
1951 builder5.offset(2);
1952
1953 String expected = "select student.id, student.name, student.idcard"
1954 + " from student"
1955 + " join student_reg on student.id = student_reg.studentId"
1956 + " where student.idcard = #{parameters.p1}"
1957 + " union"
1958 + " select id, name, idcard"
1959 + " from student"
1960 + " limit #{parameters.p2}"
1961 + " offset #{parameters.p3}";
1962
1963 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
1964
1965 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1966 }
1967
1968 @Test
1969 void testFromJoinWhereUnionLimitOffsetB4() {
1970 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1971 .from(StudentDynamicSqlSupport.student);
1972
1973 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
1974 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
1975
1976 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
1977
1978 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
1979 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
1980 .from(StudentDynamicSqlSupport.student);
1981
1982 var builder5 = builder4.limit(3);
1983
1984 builder5.offset(2);
1985
1986 String expected = "select student.id, student.name, student.idcard"
1987 + " from student"
1988 + " join student_reg on student.id = student_reg.studentId"
1989 + " where student.idcard = #{parameters.p1}"
1990 + " union"
1991 + " select id, name, idcard"
1992 + " from student"
1993 + " limit #{parameters.p2}"
1994 + " offset #{parameters.p3}";
1995
1996 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
1997
1998 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
1999 }
2000
2001 @Test
2002 void testFromJoinWhereUnionLimitOffsetB5() {
2003 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2004 .from(StudentDynamicSqlSupport.student);
2005
2006 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2007 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2008
2009 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2010
2011 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
2012 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2013 .from(StudentDynamicSqlSupport.student);
2014
2015 var builder5 = builder4.limit(3);
2016
2017 builder5.offset(2);
2018
2019 String expected = "select student.id, student.name, student.idcard"
2020 + " from student"
2021 + " join student_reg on student.id = student_reg.studentId"
2022 + " where student.idcard = #{parameters.p1}"
2023 + " union"
2024 + " select id, name, idcard"
2025 + " from student"
2026 + " limit #{parameters.p2}"
2027 + " offset #{parameters.p3}";
2028
2029 SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategies.MYBATIS3);
2030
2031 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2032 }
2033
2034 @Test
2035 void testFromJoinWhereUnionLimitOffsetB6() {
2036 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2037 .from(StudentDynamicSqlSupport.student);
2038
2039 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2040 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2041
2042 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2043
2044 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
2045 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2046 .from(StudentDynamicSqlSupport.student);
2047
2048 var builder5 = builder4.limit(3);
2049
2050 var builder6 = builder5.offset(2);
2051
2052 String expected = "select student.id, student.name, student.idcard"
2053 + " from student"
2054 + " join student_reg on student.id = student_reg.studentId"
2055 + " where student.idcard = #{parameters.p1}"
2056 + " union"
2057 + " select id, name, idcard"
2058 + " from student"
2059 + " limit #{parameters.p2}"
2060 + " offset #{parameters.p3}";
2061
2062 SelectStatementProvider selectStatement = builder6.build().render(RenderingStrategies.MYBATIS3);
2063
2064 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2065 }
2066
2067 @Test
2068 void testFromJoinWhereUnionOffsetB1() {
2069 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2070 .from(StudentDynamicSqlSupport.student);
2071
2072 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2073 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2074
2075 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2076
2077 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
2078 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2079 .from(StudentDynamicSqlSupport.student);
2080
2081 builder4.offset(2);
2082
2083 String expected = "select student.id, student.name, student.idcard"
2084 + " from student"
2085 + " join student_reg on student.id = student_reg.studentId"
2086 + " where student.idcard = #{parameters.p1}"
2087 + " union"
2088 + " select id, name, idcard"
2089 + " from student"
2090 + " offset #{parameters.p2} rows";
2091
2092 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
2093
2094 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2095 }
2096
2097 @Test
2098 void testFromJoinWhereUnionOffsetB2() {
2099 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2100 .from(StudentDynamicSqlSupport.student);
2101
2102 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2103 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2104
2105 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2106
2107 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
2108 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2109 .from(StudentDynamicSqlSupport.student);
2110
2111 builder4.offset(2);
2112
2113 String expected = "select student.id, student.name, student.idcard"
2114 + " from student"
2115 + " join student_reg on student.id = student_reg.studentId"
2116 + " where student.idcard = #{parameters.p1}"
2117 + " union"
2118 + " select id, name, idcard"
2119 + " from student"
2120 + " offset #{parameters.p2} rows";
2121
2122 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
2123
2124 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2125 }
2126
2127 @Test
2128 void testFromJoinWhereUnionOffsetB3() {
2129 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2130 .from(StudentDynamicSqlSupport.student);
2131
2132 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2133 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2134
2135 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2136
2137 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
2138 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2139 .from(StudentDynamicSqlSupport.student);
2140
2141 builder4.offset(2);
2142
2143 String expected = "select student.id, student.name, student.idcard"
2144 + " from student"
2145 + " join student_reg on student.id = student_reg.studentId"
2146 + " where student.idcard = #{parameters.p1}"
2147 + " union"
2148 + " select id, name, idcard"
2149 + " from student"
2150 + " offset #{parameters.p2} rows";
2151
2152 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
2153
2154 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2155 }
2156
2157 @Test
2158 void testFromJoinWhereUnionOffsetB4() {
2159 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2160 .from(StudentDynamicSqlSupport.student);
2161
2162 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2163 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2164
2165 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2166
2167 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
2168 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2169 .from(StudentDynamicSqlSupport.student);
2170
2171 builder4.offset(2);
2172
2173 String expected = "select student.id, student.name, student.idcard"
2174 + " from student"
2175 + " join student_reg on student.id = student_reg.studentId"
2176 + " where student.idcard = #{parameters.p1}"
2177 + " union"
2178 + " select id, name, idcard"
2179 + " from student"
2180 + " offset #{parameters.p2} rows";
2181
2182 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
2183
2184 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2185 }
2186
2187 @Test
2188 void testFromJoinWhereUnionOffsetB5() {
2189 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2190 .from(StudentDynamicSqlSupport.student);
2191
2192 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2193 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2194
2195 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2196
2197 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
2198 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2199 .from(StudentDynamicSqlSupport.student);
2200
2201 var builder5 = builder4.offset(2);
2202
2203 String expected = "select student.id, student.name, student.idcard"
2204 + " from student"
2205 + " join student_reg on student.id = student_reg.studentId"
2206 + " where student.idcard = #{parameters.p1}"
2207 + " union"
2208 + " select id, name, idcard"
2209 + " from student"
2210 + " offset #{parameters.p2} rows";
2211
2212 SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategies.MYBATIS3);
2213
2214 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2215 }
2216
2217 @Test
2218 void testFromJoinWhereUnionOffsetFetchFirstB1() {
2219 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2220 .from(StudentDynamicSqlSupport.student);
2221
2222 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2223 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2224
2225 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2226
2227 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
2228 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2229 .from(StudentDynamicSqlSupport.student);
2230
2231 var builder5 = builder4.offset(2);
2232
2233 builder5.fetchFirst(2).rowsOnly();
2234
2235 String expected = "select student.id, student.name, student.idcard"
2236 + " from student"
2237 + " join student_reg on student.id = student_reg.studentId"
2238 + " where student.idcard = #{parameters.p1}"
2239 + " union"
2240 + " select id, name, idcard"
2241 + " from student"
2242 + " offset #{parameters.p2} rows"
2243 + " fetch first #{parameters.p3} rows only";
2244
2245 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
2246
2247 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2248 }
2249
2250 @Test
2251 void testFromJoinWhereUnionOffsetFetchFirstB2() {
2252 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2253 .from(StudentDynamicSqlSupport.student);
2254
2255 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2256 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2257
2258 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2259
2260 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
2261 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2262 .from(StudentDynamicSqlSupport.student);
2263
2264 var builder5 = builder4.offset(2);
2265
2266 builder5.fetchFirst(2).rowsOnly();
2267
2268 String expected = "select student.id, student.name, student.idcard"
2269 + " from student"
2270 + " join student_reg on student.id = student_reg.studentId"
2271 + " where student.idcard = #{parameters.p1}"
2272 + " union"
2273 + " select id, name, idcard"
2274 + " from student"
2275 + " offset #{parameters.p2} rows"
2276 + " fetch first #{parameters.p3} rows only";
2277
2278 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
2279
2280 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2281 }
2282
2283 @Test
2284 void testFromJoinWhereUnionOffsetFetchFirstB3() {
2285 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2286 .from(StudentDynamicSqlSupport.student);
2287
2288 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2289 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2290
2291 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2292
2293 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
2294 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2295 .from(StudentDynamicSqlSupport.student);
2296
2297 var builder5 = builder4.offset(2);
2298
2299 builder5.fetchFirst(2).rowsOnly();
2300
2301 String expected = "select student.id, student.name, student.idcard"
2302 + " from student"
2303 + " join student_reg on student.id = student_reg.studentId"
2304 + " where student.idcard = #{parameters.p1}"
2305 + " union"
2306 + " select id, name, idcard"
2307 + " from student"
2308 + " offset #{parameters.p2} rows"
2309 + " fetch first #{parameters.p3} rows only";
2310
2311 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
2312
2313 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2314 }
2315
2316 @Test
2317 void testFromJoinWhereUnionOffsetFetchFirstB4() {
2318 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2319 .from(StudentDynamicSqlSupport.student);
2320
2321 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2322 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2323
2324 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2325
2326 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
2327 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2328 .from(StudentDynamicSqlSupport.student);
2329
2330 var builder5 = builder4.offset(2);
2331
2332 builder5.fetchFirst(2).rowsOnly();
2333
2334 String expected = "select student.id, student.name, student.idcard"
2335 + " from student"
2336 + " join student_reg on student.id = student_reg.studentId"
2337 + " where student.idcard = #{parameters.p1}"
2338 + " union"
2339 + " select id, name, idcard"
2340 + " from student"
2341 + " offset #{parameters.p2} rows"
2342 + " fetch first #{parameters.p3} rows only";
2343
2344 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
2345
2346 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2347 }
2348
2349 @Test
2350 void testFromJoinWhereUnionOffsetFetchFirstB5() {
2351 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2352 .from(StudentDynamicSqlSupport.student);
2353
2354 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2355 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2356
2357 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2358
2359 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
2360 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2361 .from(StudentDynamicSqlSupport.student);
2362
2363 var builder5 = builder4.offset(2);
2364
2365 builder5.fetchFirst(2).rowsOnly();
2366
2367 String expected = "select student.id, student.name, student.idcard"
2368 + " from student"
2369 + " join student_reg on student.id = student_reg.studentId"
2370 + " where student.idcard = #{parameters.p1}"
2371 + " union"
2372 + " select id, name, idcard"
2373 + " from student"
2374 + " offset #{parameters.p2} rows"
2375 + " fetch first #{parameters.p3} rows only";
2376
2377 SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategies.MYBATIS3);
2378
2379 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2380 }
2381
2382 @Test
2383 void testFromJoinWhereUnionOffsetFetchFirstB6() {
2384 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2385 .from(StudentDynamicSqlSupport.student);
2386
2387 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2388 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2389
2390 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2391
2392 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
2393 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2394 .from(StudentDynamicSqlSupport.student);
2395
2396 var builder5 = builder4.offset(2);
2397
2398 var builder6 = builder5.fetchFirst(2).rowsOnly();
2399
2400 String expected = "select student.id, student.name, student.idcard"
2401 + " from student"
2402 + " join student_reg on student.id = student_reg.studentId"
2403 + " where student.idcard = #{parameters.p1}"
2404 + " union"
2405 + " select id, name, idcard"
2406 + " from student"
2407 + " offset #{parameters.p2} rows"
2408 + " fetch first #{parameters.p3} rows only";
2409
2410 SelectStatementProvider selectStatement = builder6.build().render(RenderingStrategies.MYBATIS3);
2411
2412 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2413 }
2414
2415 @Test
2416 void testFromJoinWhereUnionFetchFirstB1() {
2417 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2418 .from(StudentDynamicSqlSupport.student);
2419
2420 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2421 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2422
2423 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2424
2425 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
2426 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2427 .from(StudentDynamicSqlSupport.student);
2428
2429 builder4.fetchFirst(2).rowsOnly();
2430
2431 String expected = "select student.id, student.name, student.idcard"
2432 + " from student"
2433 + " join student_reg on student.id = student_reg.studentId"
2434 + " where student.idcard = #{parameters.p1}"
2435 + " union"
2436 + " select id, name, idcard"
2437 + " from student"
2438 + " fetch first #{parameters.p2} rows only";
2439
2440 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
2441
2442 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2443 }
2444
2445 @Test
2446 void testFromJoinWhereUnionFetchFirstB2() {
2447 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2448 .from(StudentDynamicSqlSupport.student);
2449
2450 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2451 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2452
2453 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2454
2455 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
2456 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2457 .from(StudentDynamicSqlSupport.student);
2458
2459 builder4.fetchFirst(2).rowsOnly();
2460
2461 String expected = "select student.id, student.name, student.idcard"
2462 + " from student"
2463 + " join student_reg on student.id = student_reg.studentId"
2464 + " where student.idcard = #{parameters.p1}"
2465 + " union"
2466 + " select id, name, idcard"
2467 + " from student"
2468 + " fetch first #{parameters.p2} rows only";
2469
2470 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
2471
2472 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2473 }
2474
2475 @Test
2476 void testFromJoinWhereUnionFetchFirstB3() {
2477 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2478 .from(StudentDynamicSqlSupport.student);
2479
2480 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2481 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2482
2483 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2484
2485 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
2486 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2487 .from(StudentDynamicSqlSupport.student);
2488
2489 builder4.fetchFirst(2).rowsOnly();
2490
2491 String expected = "select student.id, student.name, student.idcard"
2492 + " from student"
2493 + " join student_reg on student.id = student_reg.studentId"
2494 + " where student.idcard = #{parameters.p1}"
2495 + " union"
2496 + " select id, name, idcard"
2497 + " from student"
2498 + " fetch first #{parameters.p2} rows only";
2499
2500 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
2501
2502 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2503 }
2504
2505 @Test
2506 void testFromJoinWhereUnionFetchFirstB4() {
2507 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2508 .from(StudentDynamicSqlSupport.student);
2509
2510 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2511 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2512
2513 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2514
2515 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
2516 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2517 .from(StudentDynamicSqlSupport.student);
2518
2519 builder4.fetchFirst(2).rowsOnly();
2520
2521 String expected = "select student.id, student.name, student.idcard"
2522 + " from student"
2523 + " join student_reg on student.id = student_reg.studentId"
2524 + " where student.idcard = #{parameters.p1}"
2525 + " union"
2526 + " select id, name, idcard"
2527 + " from student"
2528 + " fetch first #{parameters.p2} rows only";
2529
2530 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
2531
2532 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2533 }
2534
2535 @Test
2536 void testFromJoinWhereUnionFetchFirstB5() {
2537 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2538 .from(StudentDynamicSqlSupport.student);
2539
2540 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2541 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2542
2543 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2544
2545 QueryExpressionDSL<SelectModel> builder4 = builder3.union()
2546 .select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2547 .from(StudentDynamicSqlSupport.student);
2548
2549 var builder5 = builder4.fetchFirst(2).rowsOnly();
2550
2551 String expected = "select student.id, student.name, student.idcard"
2552 + " from student"
2553 + " join student_reg on student.id = student_reg.studentId"
2554 + " where student.idcard = #{parameters.p1}"
2555 + " union"
2556 + " select id, name, idcard"
2557 + " from student"
2558 + " fetch first #{parameters.p2} rows only";
2559
2560 SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategies.MYBATIS3);
2561
2562 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2563 }
2564
2565 @Test
2566 void testFromJoinWhereOrderByB1() {
2567 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2568 .from(StudentDynamicSqlSupport.student);
2569
2570 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2571 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2572
2573 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2574
2575 builder3.orderBy(StudentDynamicSqlSupport.id);
2576
2577 String expected = "select student.id, student.name, student.idcard"
2578 + " from student"
2579 + " join student_reg on student.id = student_reg.studentId"
2580 + " where student.idcard = #{parameters.p1}"
2581 + " order by id";
2582
2583 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
2584
2585 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2586 }
2587
2588 @Test
2589 void testFromJoinWhereOrderByB2() {
2590 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2591 .from(StudentDynamicSqlSupport.student);
2592
2593 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2594 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2595
2596 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2597
2598 builder3.orderBy(StudentDynamicSqlSupport.id);
2599
2600 String expected = "select student.id, student.name, student.idcard"
2601 + " from student"
2602 + " join student_reg on student.id = student_reg.studentId"
2603 + " where student.idcard = #{parameters.p1}"
2604 + " order by id";
2605
2606 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
2607
2608 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2609 }
2610
2611 @Test
2612 void testFromJoinWhereOrderByB3() {
2613 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2614 .from(StudentDynamicSqlSupport.student);
2615
2616 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2617 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2618
2619 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2620
2621 builder3.orderBy(StudentDynamicSqlSupport.id);
2622
2623 String expected = "select student.id, student.name, student.idcard"
2624 + " from student"
2625 + " join student_reg on student.id = student_reg.studentId"
2626 + " where student.idcard = #{parameters.p1}"
2627 + " order by id";
2628
2629 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
2630
2631 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2632 }
2633
2634 @Test
2635 void testFromJoinWhereOrderByB4() {
2636 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2637 .from(StudentDynamicSqlSupport.student);
2638
2639 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2640 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2641
2642 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2643
2644 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
2645
2646 String expected = "select student.id, student.name, student.idcard"
2647 + " from student"
2648 + " join student_reg on student.id = student_reg.studentId"
2649 + " where student.idcard = #{parameters.p1}"
2650 + " order by id";
2651
2652 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
2653
2654 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2655 }
2656
2657 @Test
2658 void testFromJoinWhereOrderByLimitB1() {
2659 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2660 .from(StudentDynamicSqlSupport.student);
2661
2662 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2663 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2664
2665 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2666
2667 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
2668
2669 builder4.limit(3);
2670
2671 String expected = "select student.id, student.name, student.idcard"
2672 + " from student"
2673 + " join student_reg on student.id = student_reg.studentId"
2674 + " where student.idcard = #{parameters.p1}"
2675 + " order by id"
2676 + " limit #{parameters.p2}";
2677
2678 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
2679
2680 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2681 }
2682
2683 @Test
2684 void testFromJoinWhereOrderByLimitB2() {
2685 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2686 .from(StudentDynamicSqlSupport.student);
2687
2688 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2689 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2690
2691 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2692
2693 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
2694
2695 builder4.limit(3);
2696
2697 String expected = "select student.id, student.name, student.idcard"
2698 + " from student"
2699 + " join student_reg on student.id = student_reg.studentId"
2700 + " where student.idcard = #{parameters.p1}"
2701 + " order by id"
2702 + " limit #{parameters.p2}";
2703
2704 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
2705
2706 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2707 }
2708
2709 @Test
2710 void testFromJoinWhereOrderByLimitB3() {
2711 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2712 .from(StudentDynamicSqlSupport.student);
2713
2714 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2715 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2716
2717 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2718
2719 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
2720
2721 builder4.limit(3);
2722
2723 String expected = "select student.id, student.name, student.idcard"
2724 + " from student"
2725 + " join student_reg on student.id = student_reg.studentId"
2726 + " where student.idcard = #{parameters.p1}"
2727 + " order by id"
2728 + " limit #{parameters.p2}";
2729
2730 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
2731
2732 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2733 }
2734
2735 @Test
2736 void testFromJoinWhereOrderByLimitB4() {
2737 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2738 .from(StudentDynamicSqlSupport.student);
2739
2740 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2741 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2742
2743 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2744
2745 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
2746
2747 builder4.limit(3);
2748
2749 String expected = "select student.id, student.name, student.idcard"
2750 + " from student"
2751 + " join student_reg on student.id = student_reg.studentId"
2752 + " where student.idcard = #{parameters.p1}"
2753 + " order by id"
2754 + " limit #{parameters.p2}";
2755
2756 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
2757
2758 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2759 }
2760
2761 @Test
2762 void testFromJoinWhereOrderByLimitB5() {
2763 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2764 .from(StudentDynamicSqlSupport.student);
2765
2766 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2767 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2768
2769 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2770
2771 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
2772
2773 var builder5 = builder4.limit(3);
2774
2775 String expected = "select student.id, student.name, student.idcard"
2776 + " from student"
2777 + " join student_reg on student.id = student_reg.studentId"
2778 + " where student.idcard = #{parameters.p1}"
2779 + " order by id"
2780 + " limit #{parameters.p2}";
2781
2782 SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategies.MYBATIS3);
2783
2784 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2785 }
2786
2787 @Test
2788 void testFromJoinWhereOrderByLimitOffsetB1() {
2789 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2790 .from(StudentDynamicSqlSupport.student);
2791
2792 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2793 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2794
2795 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2796
2797 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
2798
2799 var builder5 = builder4.limit(3);
2800
2801 builder5.offset(2);
2802
2803 String expected = "select student.id, student.name, student.idcard"
2804 + " from student"
2805 + " join student_reg on student.id = student_reg.studentId"
2806 + " where student.idcard = #{parameters.p1}"
2807 + " order by id"
2808 + " limit #{parameters.p2}"
2809 + " offset #{parameters.p3}";
2810
2811 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
2812
2813 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2814 }
2815
2816 @Test
2817 void testFromJoinWhereOrderByLimitOffsetB2() {
2818 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2819 .from(StudentDynamicSqlSupport.student);
2820
2821 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2822 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2823
2824 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2825
2826 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
2827
2828 var builder5 = builder4.limit(3);
2829
2830 builder5.offset(2);
2831
2832 String expected = "select student.id, student.name, student.idcard"
2833 + " from student"
2834 + " join student_reg on student.id = student_reg.studentId"
2835 + " where student.idcard = #{parameters.p1}"
2836 + " order by id"
2837 + " limit #{parameters.p2}"
2838 + " offset #{parameters.p3}";
2839
2840 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
2841
2842 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2843 }
2844
2845 @Test
2846 void testFromJoinWhereOrderByLimitOffsetB3() {
2847 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2848 .from(StudentDynamicSqlSupport.student);
2849
2850 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2851 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2852
2853 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2854
2855 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
2856
2857 var builder5 = builder4.limit(3);
2858
2859 builder5.offset(2);
2860
2861 String expected = "select student.id, student.name, student.idcard"
2862 + " from student"
2863 + " join student_reg on student.id = student_reg.studentId"
2864 + " where student.idcard = #{parameters.p1}"
2865 + " order by id"
2866 + " limit #{parameters.p2}"
2867 + " offset #{parameters.p3}";
2868
2869 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
2870
2871 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2872 }
2873
2874 @Test
2875 void testFromJoinWhereOrderByLimitOffsetB4() {
2876 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2877 .from(StudentDynamicSqlSupport.student);
2878
2879 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2880 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2881
2882 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2883
2884 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
2885
2886 var builder5 = builder4.limit(3);
2887
2888 builder5.offset(2);
2889
2890 String expected = "select student.id, student.name, student.idcard"
2891 + " from student"
2892 + " join student_reg on student.id = student_reg.studentId"
2893 + " where student.idcard = #{parameters.p1}"
2894 + " order by id"
2895 + " limit #{parameters.p2}"
2896 + " offset #{parameters.p3}";
2897
2898 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
2899
2900 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2901 }
2902
2903 @Test
2904 void testFromJoinWhereOrderByLimitOffsetB5() {
2905 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2906 .from(StudentDynamicSqlSupport.student);
2907
2908 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2909 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2910
2911 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2912
2913 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
2914
2915 var builder5 = builder4.limit(3);
2916
2917 builder5.offset(2);
2918
2919 String expected = "select student.id, student.name, student.idcard"
2920 + " from student"
2921 + " join student_reg on student.id = student_reg.studentId"
2922 + " where student.idcard = #{parameters.p1}"
2923 + " order by id"
2924 + " limit #{parameters.p2}"
2925 + " offset #{parameters.p3}";
2926
2927 SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategies.MYBATIS3);
2928
2929 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2930 }
2931
2932 @Test
2933 void testFromJoinWhereOrderByLimitOffsetB6() {
2934 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2935 .from(StudentDynamicSqlSupport.student);
2936
2937 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2938 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2939
2940 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2941
2942 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
2943
2944 var builder5 = builder4.limit(3);
2945
2946 var builder6 = builder5.offset(2);
2947
2948 String expected = "select student.id, student.name, student.idcard"
2949 + " from student"
2950 + " join student_reg on student.id = student_reg.studentId"
2951 + " where student.idcard = #{parameters.p1}"
2952 + " order by id"
2953 + " limit #{parameters.p2}"
2954 + " offset #{parameters.p3}";
2955
2956 SelectStatementProvider selectStatement = builder6.build().render(RenderingStrategies.MYBATIS3);
2957
2958 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2959 }
2960
2961 @Test
2962 void testFromJoinWhereOrderByOffsetB1() {
2963 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2964 .from(StudentDynamicSqlSupport.student);
2965
2966 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2967 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2968
2969 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2970
2971 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
2972
2973 builder4.offset(2);
2974
2975 String expected = "select student.id, student.name, student.idcard"
2976 + " from student"
2977 + " join student_reg on student.id = student_reg.studentId"
2978 + " where student.idcard = #{parameters.p1}"
2979 + " order by id"
2980 + " offset #{parameters.p2} rows";
2981
2982 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
2983
2984 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
2985 }
2986
2987 @Test
2988 void testFromJoinWhereOrderByOffsetB2() {
2989 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
2990 .from(StudentDynamicSqlSupport.student);
2991
2992 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
2993 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
2994
2995 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
2996
2997 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
2998
2999 builder4.offset(2);
3000
3001 String expected = "select student.id, student.name, student.idcard"
3002 + " from student"
3003 + " join student_reg on student.id = student_reg.studentId"
3004 + " where student.idcard = #{parameters.p1}"
3005 + " order by id"
3006 + " offset #{parameters.p2} rows";
3007
3008 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
3009
3010 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3011 }
3012
3013 @Test
3014 void testFromJoinWhereOrderByOffsetB3() {
3015 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3016 .from(StudentDynamicSqlSupport.student);
3017
3018 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3019 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3020
3021 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3022
3023 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
3024
3025 builder4.offset(2);
3026
3027 String expected = "select student.id, student.name, student.idcard"
3028 + " from student"
3029 + " join student_reg on student.id = student_reg.studentId"
3030 + " where student.idcard = #{parameters.p1}"
3031 + " order by id"
3032 + " offset #{parameters.p2} rows";
3033
3034 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
3035
3036 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3037 }
3038
3039 @Test
3040 void testFromJoinWhereOrderByOffsetB4() {
3041 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3042 .from(StudentDynamicSqlSupport.student);
3043
3044 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3045 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3046
3047 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3048
3049 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
3050
3051 builder4.offset(2);
3052
3053 String expected = "select student.id, student.name, student.idcard"
3054 + " from student"
3055 + " join student_reg on student.id = student_reg.studentId"
3056 + " where student.idcard = #{parameters.p1}"
3057 + " order by id"
3058 + " offset #{parameters.p2} rows";
3059
3060 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
3061
3062 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3063 }
3064
3065 @Test
3066 void testFromJoinWhereOrderByOffsetB5() {
3067 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3068 .from(StudentDynamicSqlSupport.student);
3069
3070 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3071 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3072
3073 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3074
3075 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
3076
3077 var builder5 = builder4.offset(2);
3078
3079 String expected = "select student.id, student.name, student.idcard"
3080 + " from student"
3081 + " join student_reg on student.id = student_reg.studentId"
3082 + " where student.idcard = #{parameters.p1}"
3083 + " order by id"
3084 + " offset #{parameters.p2} rows";
3085
3086 SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategies.MYBATIS3);
3087
3088 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3089 }
3090
3091 @Test
3092 void testFromJoinWhereOrderByOffsetFetchFirstB1() {
3093 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3094 .from(StudentDynamicSqlSupport.student);
3095
3096 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3097 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3098
3099 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3100
3101 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
3102
3103 var builder5 = builder4.offset(2);
3104
3105 builder5.fetchFirst(3).rowsOnly();
3106
3107 String expected = "select student.id, student.name, student.idcard"
3108 + " from student"
3109 + " join student_reg on student.id = student_reg.studentId"
3110 + " where student.idcard = #{parameters.p1}"
3111 + " order by id"
3112 + " offset #{parameters.p2} rows"
3113 + " fetch first #{parameters.p3} rows only";
3114
3115 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
3116
3117 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3118 }
3119
3120 @Test
3121 void testFromJoinWhereOrderByOffsetFetchFirstB2() {
3122 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3123 .from(StudentDynamicSqlSupport.student);
3124
3125 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3126 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3127
3128 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3129
3130 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
3131
3132 var builder5 = builder4.offset(2);
3133
3134 builder5.fetchFirst(3).rowsOnly();
3135
3136 String expected = "select student.id, student.name, student.idcard"
3137 + " from student"
3138 + " join student_reg on student.id = student_reg.studentId"
3139 + " where student.idcard = #{parameters.p1}"
3140 + " order by id"
3141 + " offset #{parameters.p2} rows"
3142 + " fetch first #{parameters.p3} rows only";
3143
3144 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
3145
3146 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3147 }
3148
3149 @Test
3150 void testFromJoinWhereOrderByOffsetFetchFirstB3() {
3151 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3152 .from(StudentDynamicSqlSupport.student);
3153
3154 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3155 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3156
3157 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3158
3159 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
3160
3161 var builder5 = builder4.offset(2);
3162
3163 builder5.fetchFirst(3).rowsOnly();
3164
3165 String expected = "select student.id, student.name, student.idcard"
3166 + " from student"
3167 + " join student_reg on student.id = student_reg.studentId"
3168 + " where student.idcard = #{parameters.p1}"
3169 + " order by id"
3170 + " offset #{parameters.p2} rows"
3171 + " fetch first #{parameters.p3} rows only";
3172
3173 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
3174
3175 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3176 }
3177
3178 @Test
3179 void testFromJoinWhereOrderByOffsetFetchFirstB4() {
3180 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3181 .from(StudentDynamicSqlSupport.student);
3182
3183 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3184 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3185
3186 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3187
3188 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
3189
3190 var builder5 = builder4.offset(2);
3191
3192 builder5.fetchFirst(3).rowsOnly();
3193
3194 String expected = "select student.id, student.name, student.idcard"
3195 + " from student"
3196 + " join student_reg on student.id = student_reg.studentId"
3197 + " where student.idcard = #{parameters.p1}"
3198 + " order by id"
3199 + " offset #{parameters.p2} rows"
3200 + " fetch first #{parameters.p3} rows only";
3201
3202 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
3203
3204 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3205 }
3206
3207 @Test
3208 void testFromJoinWhereOrderByOffsetFetchFirstB5() {
3209 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3210 .from(StudentDynamicSqlSupport.student);
3211
3212 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3213 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3214
3215 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3216
3217 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
3218
3219 var builder5 = builder4.offset(2);
3220
3221 builder5.fetchFirst(3).rowsOnly();
3222
3223 String expected = "select student.id, student.name, student.idcard"
3224 + " from student"
3225 + " join student_reg on student.id = student_reg.studentId"
3226 + " where student.idcard = #{parameters.p1}"
3227 + " order by id"
3228 + " offset #{parameters.p2} rows"
3229 + " fetch first #{parameters.p3} rows only";
3230
3231 SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategies.MYBATIS3);
3232
3233 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3234 }
3235
3236 @Test
3237 void testFromJoinWhereOrderByOffsetFetchFirstB6() {
3238 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3239 .from(StudentDynamicSqlSupport.student);
3240
3241 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3242 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3243
3244 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3245
3246 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
3247
3248 var builder5 = builder4.offset(2);
3249
3250 var builder6 = builder5.fetchFirst(3).rowsOnly();
3251
3252 String expected = "select student.id, student.name, student.idcard"
3253 + " from student"
3254 + " join student_reg on student.id = student_reg.studentId"
3255 + " where student.idcard = #{parameters.p1}"
3256 + " order by id"
3257 + " offset #{parameters.p2} rows"
3258 + " fetch first #{parameters.p3} rows only";
3259
3260 SelectStatementProvider selectStatement = builder6.build().render(RenderingStrategies.MYBATIS3);
3261
3262 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3263 }
3264
3265 @Test
3266 void testFromJoinWhereOrderByFetchFirstB1() {
3267 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3268 .from(StudentDynamicSqlSupport.student);
3269
3270 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3271 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3272
3273 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3274
3275 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
3276
3277 builder4.fetchFirst(3).rowsOnly();
3278
3279 String expected = "select student.id, student.name, student.idcard"
3280 + " from student"
3281 + " join student_reg on student.id = student_reg.studentId"
3282 + " where student.idcard = #{parameters.p1}"
3283 + " order by id"
3284 + " fetch first #{parameters.p2} rows only";
3285
3286 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
3287
3288 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3289 }
3290
3291 @Test
3292 void testFromJoinWhereOrderByFetchFirstB2() {
3293 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3294 .from(StudentDynamicSqlSupport.student);
3295
3296 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3297 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3298
3299 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3300
3301 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
3302
3303 builder4.fetchFirst(3).rowsOnly();
3304
3305 String expected = "select student.id, student.name, student.idcard"
3306 + " from student"
3307 + " join student_reg on student.id = student_reg.studentId"
3308 + " where student.idcard = #{parameters.p1}"
3309 + " order by id"
3310 + " fetch first #{parameters.p2} rows only";
3311
3312 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
3313
3314 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3315 }
3316
3317 @Test
3318 void testFromJoinWhereOrderByFetchFirstB3() {
3319 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3320 .from(StudentDynamicSqlSupport.student);
3321
3322 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3323 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3324
3325 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3326
3327 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
3328
3329 builder4.fetchFirst(3).rowsOnly();
3330
3331 String expected = "select student.id, student.name, student.idcard"
3332 + " from student"
3333 + " join student_reg on student.id = student_reg.studentId"
3334 + " where student.idcard = #{parameters.p1}"
3335 + " order by id"
3336 + " fetch first #{parameters.p2} rows only";
3337
3338 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
3339
3340 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3341 }
3342
3343 @Test
3344 void testFromJoinWhereOrderByFetchFirstB4() {
3345 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3346 .from(StudentDynamicSqlSupport.student);
3347
3348 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3349 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3350
3351 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3352
3353 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
3354
3355 builder4.fetchFirst(3).rowsOnly();
3356
3357 String expected = "select student.id, student.name, student.idcard"
3358 + " from student"
3359 + " join student_reg on student.id = student_reg.studentId"
3360 + " where student.idcard = #{parameters.p1}"
3361 + " order by id"
3362 + " fetch first #{parameters.p2} rows only";
3363
3364 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
3365
3366 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3367 }
3368
3369 @Test
3370 void testFromJoinWhereOrderByFetchFirstB5() {
3371 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3372 .from(StudentDynamicSqlSupport.student);
3373
3374 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3375 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3376
3377 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3378
3379 SelectDSL<SelectModel> builder4 = builder3.orderBy(StudentDynamicSqlSupport.id);
3380
3381 var builder5 = builder4.fetchFirst(3).rowsOnly();
3382
3383 String expected = "select student.id, student.name, student.idcard"
3384 + " from student"
3385 + " join student_reg on student.id = student_reg.studentId"
3386 + " where student.idcard = #{parameters.p1}"
3387 + " order by id"
3388 + " fetch first #{parameters.p2} rows only";
3389
3390 SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategies.MYBATIS3);
3391
3392 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3393 }
3394
3395 @Test
3396 void testFromJoinWhereLimitB1() {
3397 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3398 .from(StudentDynamicSqlSupport.student);
3399
3400 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3401 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3402
3403 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3404
3405 builder3.limit(2);
3406
3407 String expected = "select student.id, student.name, student.idcard"
3408 + " from student"
3409 + " join student_reg on student.id = student_reg.studentId"
3410 + " where student.idcard = #{parameters.p1}"
3411 + " limit #{parameters.p2}";
3412
3413 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
3414
3415 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3416 }
3417
3418 @Test
3419 void testFromJoinWhereLimitB2() {
3420 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3421 .from(StudentDynamicSqlSupport.student);
3422
3423 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3424 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3425
3426 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3427
3428 builder3.limit(2);
3429
3430 String expected = "select student.id, student.name, student.idcard"
3431 + " from student"
3432 + " join student_reg on student.id = student_reg.studentId"
3433 + " where student.idcard = #{parameters.p1}"
3434 + " limit #{parameters.p2}";
3435
3436 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
3437
3438 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3439 }
3440
3441 @Test
3442 void testFromJoinWhereLimitB3() {
3443 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3444 .from(StudentDynamicSqlSupport.student);
3445
3446 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3447 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3448
3449 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3450
3451 builder3.limit(2);
3452
3453 String expected = "select student.id, student.name, student.idcard"
3454 + " from student"
3455 + " join student_reg on student.id = student_reg.studentId"
3456 + " where student.idcard = #{parameters.p1}"
3457 + " limit #{parameters.p2}";
3458
3459 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
3460
3461 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3462 }
3463
3464 @Test
3465 void testFromJoinWhereLimitB4() {
3466 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3467 .from(StudentDynamicSqlSupport.student);
3468
3469 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3470 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3471
3472 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3473
3474 var builder4 = builder3.limit(2);
3475
3476 String expected = "select student.id, student.name, student.idcard"
3477 + " from student"
3478 + " join student_reg on student.id = student_reg.studentId"
3479 + " where student.idcard = #{parameters.p1}"
3480 + " limit #{parameters.p2}";
3481
3482 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
3483
3484 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3485 }
3486
3487 @Test
3488 void testFromJoinWhereLimitOffsetB1() {
3489 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3490 .from(StudentDynamicSqlSupport.student);
3491
3492 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3493 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3494
3495 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3496
3497 var builder4 = builder3.limit(2);
3498
3499 builder4.offset(3);
3500
3501 String expected = "select student.id, student.name, student.idcard"
3502 + " from student"
3503 + " join student_reg on student.id = student_reg.studentId"
3504 + " where student.idcard = #{parameters.p1}"
3505 + " limit #{parameters.p2}"
3506 + " offset #{parameters.p3}";
3507
3508 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
3509
3510 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3511 }
3512
3513 @Test
3514 void testFromJoinWhereLimitOffsetB2() {
3515 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3516 .from(StudentDynamicSqlSupport.student);
3517
3518 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3519 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3520
3521 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3522
3523 var builder4 = builder3.limit(2);
3524
3525 builder4.offset(3);
3526
3527 String expected = "select student.id, student.name, student.idcard"
3528 + " from student"
3529 + " join student_reg on student.id = student_reg.studentId"
3530 + " where student.idcard = #{parameters.p1}"
3531 + " limit #{parameters.p2}"
3532 + " offset #{parameters.p3}";
3533
3534 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
3535
3536 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3537 }
3538
3539 @Test
3540 void testFromJoinWhereLimitOffsetB3() {
3541 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3542 .from(StudentDynamicSqlSupport.student);
3543
3544 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3545 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3546
3547 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3548
3549 var builder4 = builder3.limit(2);
3550
3551 builder4.offset(3);
3552
3553 String expected = "select student.id, student.name, student.idcard"
3554 + " from student"
3555 + " join student_reg on student.id = student_reg.studentId"
3556 + " where student.idcard = #{parameters.p1}"
3557 + " limit #{parameters.p2}"
3558 + " offset #{parameters.p3}";
3559
3560 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
3561
3562 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3563 }
3564
3565 @Test
3566 void testFromJoinWhereLimitOffsetB4() {
3567 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3568 .from(StudentDynamicSqlSupport.student);
3569
3570 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3571 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3572
3573 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3574
3575 var builder4 = builder3.limit(2);
3576
3577 builder4.offset(3);
3578
3579 String expected = "select student.id, student.name, student.idcard"
3580 + " from student"
3581 + " join student_reg on student.id = student_reg.studentId"
3582 + " where student.idcard = #{parameters.p1}"
3583 + " limit #{parameters.p2}"
3584 + " offset #{parameters.p3}";
3585
3586 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
3587
3588 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3589 }
3590
3591 @Test
3592 void testFromJoinWhereLimitOffsetB5() {
3593 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3594 .from(StudentDynamicSqlSupport.student);
3595
3596 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3597 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3598
3599 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3600
3601 var builder4 = builder3.limit(2);
3602
3603 var builder5 = builder4.offset(3);
3604
3605 String expected = "select student.id, student.name, student.idcard"
3606 + " from student"
3607 + " join student_reg on student.id = student_reg.studentId"
3608 + " where student.idcard = #{parameters.p1}"
3609 + " limit #{parameters.p2}"
3610 + " offset #{parameters.p3}";
3611
3612 SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategies.MYBATIS3);
3613
3614 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3615 }
3616
3617 @Test
3618 void testFromJoinWhereOffsetB1() {
3619 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3620 .from(StudentDynamicSqlSupport.student);
3621
3622 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3623 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3624
3625 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3626
3627 builder3.offset(3);
3628
3629 String expected = "select student.id, student.name, student.idcard"
3630 + " from student"
3631 + " join student_reg on student.id = student_reg.studentId"
3632 + " where student.idcard = #{parameters.p1}"
3633 + " offset #{parameters.p2} rows";
3634
3635 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
3636
3637 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3638 }
3639
3640 @Test
3641 void testFromJoinWhereOffsetB2() {
3642 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3643 .from(StudentDynamicSqlSupport.student);
3644
3645 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3646 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3647
3648 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3649
3650 builder3.offset(3);
3651
3652 String expected = "select student.id, student.name, student.idcard"
3653 + " from student"
3654 + " join student_reg on student.id = student_reg.studentId"
3655 + " where student.idcard = #{parameters.p1}"
3656 + " offset #{parameters.p2} rows";
3657
3658 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
3659
3660 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3661 }
3662
3663 @Test
3664 void testFromJoinWhereOffsetB3() {
3665 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3666 .from(StudentDynamicSqlSupport.student);
3667
3668 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3669 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3670
3671 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3672
3673 builder3.offset(3);
3674
3675 String expected = "select student.id, student.name, student.idcard"
3676 + " from student"
3677 + " join student_reg on student.id = student_reg.studentId"
3678 + " where student.idcard = #{parameters.p1}"
3679 + " offset #{parameters.p2} rows";
3680
3681 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
3682
3683 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3684 }
3685
3686 @Test
3687 void testFromJoinWhereOffsetB4() {
3688 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3689 .from(StudentDynamicSqlSupport.student);
3690
3691 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3692 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3693
3694 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3695
3696 var builder4 = builder3.offset(3);
3697
3698 String expected = "select student.id, student.name, student.idcard"
3699 + " from student"
3700 + " join student_reg on student.id = student_reg.studentId"
3701 + " where student.idcard = #{parameters.p1}"
3702 + " offset #{parameters.p2} rows";
3703
3704 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
3705
3706 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3707 }
3708
3709 @Test
3710 void testFromJoinWhereOffsetFetchFirstB1() {
3711 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3712 .from(StudentDynamicSqlSupport.student);
3713
3714 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3715 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3716
3717 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3718
3719 var builder4 = builder3.offset(3);
3720
3721 builder4.fetchFirst(2).rowsOnly();
3722
3723 String expected = "select student.id, student.name, student.idcard"
3724 + " from student"
3725 + " join student_reg on student.id = student_reg.studentId"
3726 + " where student.idcard = #{parameters.p1}"
3727 + " offset #{parameters.p2} rows"
3728 + " fetch first #{parameters.p3} rows only";
3729
3730 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
3731
3732 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3733 }
3734
3735 @Test
3736 void testFromJoinWhereOffsetFetchFirstB2() {
3737 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3738 .from(StudentDynamicSqlSupport.student);
3739
3740 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3741 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3742
3743 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3744
3745 var builder4 = builder3.offset(3);
3746
3747 builder4.fetchFirst(2).rowsOnly();
3748
3749 String expected = "select student.id, student.name, student.idcard"
3750 + " from student"
3751 + " join student_reg on student.id = student_reg.studentId"
3752 + " where student.idcard = #{parameters.p1}"
3753 + " offset #{parameters.p2} rows"
3754 + " fetch first #{parameters.p3} rows only";
3755
3756 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
3757
3758 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3759 }
3760
3761 @Test
3762 void testFromJoinWhereOffsetFetchFirstB3() {
3763 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3764 .from(StudentDynamicSqlSupport.student);
3765
3766 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3767 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3768
3769 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3770
3771 var builder4 = builder3.offset(3);
3772
3773 builder4.fetchFirst(2).rowsOnly();
3774
3775 String expected = "select student.id, student.name, student.idcard"
3776 + " from student"
3777 + " join student_reg on student.id = student_reg.studentId"
3778 + " where student.idcard = #{parameters.p1}"
3779 + " offset #{parameters.p2} rows"
3780 + " fetch first #{parameters.p3} rows only";
3781
3782 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
3783
3784 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3785 }
3786
3787 @Test
3788 void testFromJoinWhereOffsetFetchFirstB4() {
3789 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3790 .from(StudentDynamicSqlSupport.student);
3791
3792 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3793 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3794
3795 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3796
3797 var builder4 = builder3.offset(3);
3798
3799 builder4.fetchFirst(2).rowsOnly();
3800
3801 String expected = "select student.id, student.name, student.idcard"
3802 + " from student"
3803 + " join student_reg on student.id = student_reg.studentId"
3804 + " where student.idcard = #{parameters.p1}"
3805 + " offset #{parameters.p2} rows"
3806 + " fetch first #{parameters.p3} rows only";
3807
3808 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
3809
3810 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3811 }
3812
3813 @Test
3814 void testFromJoinWhereOffsetFetchFirstB5() {
3815 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3816 .from(StudentDynamicSqlSupport.student);
3817
3818 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3819 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3820
3821 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3822
3823 var builder4 = builder3.offset(3);
3824
3825 var builder5 = builder4.fetchFirst(2).rowsOnly();
3826
3827 String expected = "select student.id, student.name, student.idcard"
3828 + " from student"
3829 + " join student_reg on student.id = student_reg.studentId"
3830 + " where student.idcard = #{parameters.p1}"
3831 + " offset #{parameters.p2} rows"
3832 + " fetch first #{parameters.p3} rows only";
3833
3834 SelectStatementProvider selectStatement = builder5.build().render(RenderingStrategies.MYBATIS3);
3835
3836 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3837 }
3838
3839 @Test
3840 void testFromJoinWhereFetchFirstB1() {
3841 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3842 .from(StudentDynamicSqlSupport.student);
3843
3844 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3845 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3846
3847 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3848
3849 builder3.fetchFirst(2).rowsOnly();
3850
3851 String expected = "select student.id, student.name, student.idcard"
3852 + " from student"
3853 + " join student_reg on student.id = student_reg.studentId"
3854 + " where student.idcard = #{parameters.p1}"
3855 + " fetch first #{parameters.p2} rows only";
3856
3857 SelectStatementProvider selectStatement = builder1.build().render(RenderingStrategies.MYBATIS3);
3858
3859 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3860 }
3861
3862 @Test
3863 void testFromJoinWhereFetchFirstB2() {
3864 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3865 .from(StudentDynamicSqlSupport.student);
3866
3867 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3868 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3869
3870 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3871
3872 builder3.fetchFirst(2).rowsOnly();
3873
3874 String expected = "select student.id, student.name, student.idcard"
3875 + " from student"
3876 + " join student_reg on student.id = student_reg.studentId"
3877 + " where student.idcard = #{parameters.p1}"
3878 + " fetch first #{parameters.p2} rows only";
3879
3880 SelectStatementProvider selectStatement = builder2.build().render(RenderingStrategies.MYBATIS3);
3881
3882 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3883 }
3884
3885 @Test
3886 void testFromJoinWhereFetchFirstB3() {
3887 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3888 .from(StudentDynamicSqlSupport.student);
3889
3890 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3891 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3892
3893 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3894
3895 builder3.fetchFirst(2).rowsOnly();
3896
3897 String expected = "select student.id, student.name, student.idcard"
3898 + " from student"
3899 + " join student_reg on student.id = student_reg.studentId"
3900 + " where student.idcard = #{parameters.p1}"
3901 + " fetch first #{parameters.p2} rows only";
3902
3903 SelectStatementProvider selectStatement = builder3.build().render(RenderingStrategies.MYBATIS3);
3904
3905 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3906 }
3907
3908 @Test
3909 void testFromJoinWhereFetchFirstB4() {
3910 QueryExpressionDSL<SelectModel> builder1 = select(StudentDynamicSqlSupport.id, StudentDynamicSqlSupport.name, StudentDynamicSqlSupport.idcard)
3911 .from(StudentDynamicSqlSupport.student);
3912
3913 QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher builder2 = builder1.join(StudentRegDynamicSqlSupport.studentReg)
3914 .on(StudentDynamicSqlSupport.id, isEqualTo(StudentRegDynamicSqlSupport.studentid));
3915
3916 QueryExpressionDSL<SelectModel>.QueryExpressionWhereBuilder builder3 = builder2.where(StudentDynamicSqlSupport.idcard, isEqualTo("fred"));
3917
3918 var builder4 = builder3.fetchFirst(2).rowsOnly();
3919
3920 String expected = "select student.id, student.name, student.idcard"
3921 + " from student"
3922 + " join student_reg on student.id = student_reg.studentId"
3923 + " where student.idcard = #{parameters.p1}"
3924 + " fetch first #{parameters.p2} rows only";
3925
3926 SelectStatementProvider selectStatement = builder4.build().render(RenderingStrategies.MYBATIS3);
3927
3928 assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
3929 }
3930 }