public GraphQLObjectType createType() { Builder roleType = newObject(); roleType.name(ROLE_TYPE_NAME); roleType.description("Role description"); interfaceTypeProvider.addCommonFields(roleType); // .name roleType.field(newFieldDefinition().name("name").description("The name of the role").type(GraphQLString).dataFetcher((env) -> { Role role = env.getSource(); return role.getName(); })); // .groups roleType.field(newPagingFieldWithFetcher("groups", "Groups which reference the role.", (env) -> { Role role = env.getSource(); GraphQLContext gc = env.getContext(); return role.getGroups(gc.getUser(), getPagingInfo(env)); }, GROUP_PAGE_TYPE_NAME)); return roleType.build(); }