@@ -421,7 +421,9 @@ private GraphQLFieldDefinition getAggregateFieldDefinition(EntityType<?> entityT
421
421
final var selectTypeName = resolveSelectTypeName (entityType );
422
422
final var aggregateObjectTypeName = selectTypeName .concat ("Aggregate" );
423
423
424
- var aggregateObjectType = newObject ().name (aggregateObjectTypeName );
424
+ var aggregateObjectType = newObject ()
425
+ .name (aggregateObjectTypeName )
426
+ .description ("%s entity aggregate object type" .formatted (selectTypeName ));
425
427
426
428
DataFetcher <Object > aggregateDataFetcher = environment -> {
427
429
Map <String , Object > source = environment .getSource ();
@@ -431,6 +433,7 @@ private GraphQLFieldDefinition getAggregateFieldDefinition(EntityType<?> entityT
431
433
432
434
var countFieldDefinition = newFieldDefinition ()
433
435
.name ("count" )
436
+ .description ("Count the number of records in the database for the %s aggregate" .formatted (selectTypeName ))
434
437
.dataFetcher (aggregateDataFetcher )
435
438
.type (GraphQLInt );
436
439
@@ -440,7 +443,12 @@ private GraphQLFieldDefinition getAggregateFieldDefinition(EntityType<?> entityT
440
443
.filter (it -> EntityIntrospector .introspect (entityType ).isNotIgnored (it .getName ()))
441
444
.filter (Attribute ::isAssociation )
442
445
.map (Attribute ::getName )
443
- .map (name -> newEnumValueDefinition ().name (name ).build ())
446
+ .map (name ->
447
+ newEnumValueDefinition ()
448
+ .name (name )
449
+ .description ("%s entity associated %s child entity" .formatted (selectTypeName , name ))
450
+ .build ()
451
+ )
444
452
.toList ();
445
453
446
454
var fieldsEnumValueDefinitions = entityType
@@ -449,16 +457,27 @@ private GraphQLFieldDefinition getAggregateFieldDefinition(EntityType<?> entityT
449
457
.filter (it -> EntityIntrospector .introspect (entityType ).isNotIgnored (it .getName ()))
450
458
.filter (it -> isBasic (it ) || isEmbeddable (it ))
451
459
.map (Attribute ::getName )
452
- .map (name -> newEnumValueDefinition ().name (name ).build ())
460
+ .map (name ->
461
+ newEnumValueDefinition ()
462
+ .name (name )
463
+ .description ("%s entity %s attribute" .formatted (selectTypeName , name ))
464
+ .build ()
465
+ )
453
466
.toList ();
454
467
455
468
if (entityType .getAttributes ().stream ().anyMatch (Attribute ::isAssociation )) {
456
469
countFieldDefinition .argument (
457
470
newArgument ()
458
471
.name ("of" )
472
+ .description (
473
+ "Count the number of associated records in the database for the %s aggregate" .formatted (
474
+ selectTypeName
475
+ )
476
+ )
459
477
.type (
460
478
newEnum ()
461
479
.name (aggregateObjectTypeName .concat ("CountOfAssociationsEnum" ))
480
+ .description ("%s entity associated entity name values" .formatted (selectTypeName ))
462
481
.values (associationEnumValueDefinitions )
463
482
.build ()
464
483
)
@@ -467,21 +486,34 @@ private GraphQLFieldDefinition getAggregateFieldDefinition(EntityType<?> entityT
467
486
468
487
var groupFieldDefinition = newFieldDefinition ()
469
488
.name ("group" )
489
+ .description ("Group by %s entity query field aggregated by multiple fields" .formatted (selectTypeName ))
470
490
.dataFetcher (aggregateDataFetcher )
471
491
.type (
472
492
new GraphQLList (
473
493
newObject ()
474
494
.name (aggregateObjectTypeName .concat ("GroupBy" ))
495
+ .description ("%s entity group by object type" .formatted (selectTypeName ))
475
496
.field (
476
497
newFieldDefinition ()
477
498
.name ("by" )
499
+ .description (
500
+ "Group by %s field container used to query aggregate data by one or more fields" .formatted (
501
+ selectTypeName
502
+ )
503
+ )
478
504
.dataFetcher (aggregateDataFetcher )
479
505
.argument (
480
506
newArgument ()
481
507
.name ("field" )
508
+ .description (
509
+ "Group by field argument used to specify %s entity field name" .formatted (
510
+ selectTypeName
511
+ )
512
+ )
482
513
.type (
483
514
newEnum ()
484
515
.name (aggregateObjectTypeName .concat ("GroupByFieldsEnum" ))
516
+ .description ("%s entity field name values" .formatted (selectTypeName ))
485
517
.values (fieldsEnumValueDefinitions )
486
518
.build ()
487
519
)
@@ -515,6 +547,12 @@ private GraphQLFieldDefinition getAggregateFieldDefinition(EntityType<?> entityT
515
547
aggregateObjectType .field (
516
548
newFieldDefinition ()
517
549
.name (association .getName ())
550
+ .description (
551
+ "Aggregate %s query field definition for the associated %s entity" .formatted (
552
+ selectTypeName ,
553
+ association .getName ()
554
+ )
555
+ )
518
556
.dataFetcher (aggregateDataFetcher )
519
557
.type (
520
558
new GraphQLList (
@@ -524,13 +562,29 @@ private GraphQLFieldDefinition getAggregateFieldDefinition(EntityType<?> entityT
524
562
.concat (capitalize (association .getName ()))
525
563
.concat ("GroupByNestedAssociation" )
526
564
)
565
+ .description (
566
+ "Aggregate %s query object type for the associated %s entity" .formatted (
567
+ selectTypeName ,
568
+ association .getName ()
569
+ )
570
+ )
527
571
.field (
528
572
newFieldDefinition ()
529
573
.name ("by" )
530
574
.dataFetcher (aggregateDataFetcher )
575
+ .description (
576
+ "Group by %s attribute field used to query aggregate data by one or more fields" .formatted (
577
+ association .getName ()
578
+ )
579
+ )
531
580
.argument (
532
581
newArgument ()
533
582
.name ("field" )
583
+ .description (
584
+ "Group by field argument used to specify associated %s entity field name" .formatted (
585
+ association .getName ()
586
+ )
587
+ )
534
588
.type (
535
589
newEnum ()
536
590
.name (
@@ -544,7 +598,16 @@ private GraphQLFieldDefinition getAggregateFieldDefinition(EntityType<?> entityT
544
598
)
545
599
.type (JavaScalars .GraphQLObjectScalar )
546
600
)
547
- .field (newFieldDefinition ().name ("count" ).type (GraphQLInt ))
601
+ .field (
602
+ newFieldDefinition ()
603
+ .name ("count" )
604
+ .description (
605
+ "Count the number of records in the database for the %s associated nested aggregate" .formatted (
606
+ association .getName ()
607
+ )
608
+ )
609
+ .type (GraphQLInt )
610
+ )
548
611
.build ()
549
612
)
550
613
)
@@ -554,7 +617,10 @@ private GraphQLFieldDefinition getAggregateFieldDefinition(EntityType<?> entityT
554
617
555
618
aggregateObjectType .field (countFieldDefinition ).field (groupFieldDefinition );
556
619
557
- var aggregateFieldDefinition = newFieldDefinition ().name ("aggregate" ).type (aggregateObjectType );
620
+ var aggregateFieldDefinition = newFieldDefinition ()
621
+ .name ("aggregate" )
622
+ .description ("Aggregate data query field for %s entity" .formatted (selectTypeName ))
623
+ .type (aggregateObjectType );
558
624
559
625
return aggregateFieldDefinition .build ();
560
626
}
0 commit comments