@@ -201,6 +201,39 @@ void studentsByGroupName_Eager_OneToManyTest() {
201
201
);
202
202
}
203
203
204
+ @ Test
205
+ void studentByGroupNameUsingPragmaHintTest () {
206
+ inTransaction (
207
+ session -> {
208
+ /*
209
+ PRAGMA ydb.HashJoinMode='grace'; PRAGMA Warning("disable", "1101"); select
210
+ g1_0.GroupId,
211
+ g1_0.GroupName,
212
+ s1_0.GroupId,
213
+ s1_0.StudentId,
214
+ s1_0.StudentName
215
+ from
216
+ Groups g1_0
217
+ join
218
+ Students s1_0
219
+ on g1_0.GroupId=s1_0.GroupId
220
+ where
221
+ g1_0.GroupName='M3439'
222
+ */
223
+ List <Student > students = session
224
+ .createQuery ("FROM Group g JOIN FETCH g.students WHERE g.name = 'M3439'" , Group .class )
225
+ .addQueryHint ("add_pragma:ydb.HashJoinMode='grace'" )
226
+ .addQueryHint ("add_pragma:Warning(\" disable\" , \" 1101\" )" )
227
+ .getSingleResult ().getStudents ();
228
+
229
+ assertEquals (2 , students .size ());
230
+
231
+ assertEquals ("Петров П.П." , students .get (0 ).getName ());
232
+ assertEquals ("Сидоров С.С." , students .get (1 ).getName ());
233
+ }
234
+ );
235
+ }
236
+
204
237
@ Test
205
238
void groupsByLecturerIdAndCourseId_Eager_ManyToManyTest () {
206
239
inTransaction (
@@ -313,8 +346,9 @@ private static void checkCourses(List<Course> courses) {
313
346
}
314
347
315
348
@ Test
316
- void useIndexAndUseScanHintsTogetherTest () {
349
+ void useAllHintsTogetherTest () {
317
350
/*
351
+ PRAGMA Warning("disable", "1101");
318
352
scan select
319
353
g1_0.GroupId,
320
354
g1_0.GroupName
@@ -329,6 +363,7 @@ void useIndexAndUseScanHintsTogetherTest() {
329
363
.createQuery ("FROM Group g WHERE g.name = 'M3439'" , Group .class )
330
364
.addQueryHint ("use_index:group_name_index" ) // Hibernate
331
365
.addQueryHint ("use_scan" )
366
+ .addQueryHint ("add_pragma:Warning(\" disable\" , \" 1101\" )" )
332
367
.getSingleResult ();
333
368
334
369
assertEquals ("M3439" , group .getName ());
@@ -337,6 +372,7 @@ void useIndexAndUseScanHintsTogetherTest() {
337
372
338
373
339
374
/*
375
+ PRAGMA Warning("disable", "1101");
340
376
scan select
341
377
g1_0.GroupId,
342
378
g1_0.GroupName
@@ -349,7 +385,8 @@ void useIndexAndUseScanHintsTogetherTest() {
349
385
session -> {
350
386
Group group = session
351
387
.createQuery ("FROM Group g WHERE g.name = 'M3439'" , Group .class )
352
- .setHint (HibernateHints .HINT_COMMENT , "use_index:group_name_index, use_scan" ) // JPA
388
+ .setHint (HibernateHints .HINT_COMMENT ,
389
+ "use_index:group_name_index;use_scan;add_pragma:Warning(\" disable\" , \" 1101\" )" )
353
390
.getSingleResult ();
354
391
355
392
assertEquals ("M3439" , group .getName ());
0 commit comments