private function getLoadTypeQueryBuilder(): QueryBuilder
    {
        $q = $this->connection->createQueryBuilder();
        $expr = $q->expr();
        $q
            ->select([
                'c.id AS ezcontentclass_id',
                'c.version AS ezcontentclass_version',
                'c.serialized_name_list AS ezcontentclass_serialized_name_list',
                'c.serialized_description_list AS ezcontentclass_serialized_description_list',
                'c.identifier AS ezcontentclass_identifier',
                'c.created AS ezcontentclass_created',
                'c.modified AS ezcontentclass_modified',
                'c.modifier_id AS ezcontentclass_modifier_id',
                'c.creator_id AS ezcontentclass_creator_id',
                'c.remote_id AS ezcontentclass_remote_id',
                'c.url_alias_name AS ezcontentclass_url_alias_name',
                'c.contentobject_name AS ezcontentclass_contentobject_name',
                'c.is_container AS ezcontentclass_is_container',
                'c.initial_language_id AS ezcontentclass_initial_language_id',
                'c.always_available AS ezcontentclass_always_available',
                'c.sort_field AS ezcontentclass_sort_field',
                'c.sort_order AS ezcontentclass_sort_order',
                'c.language_mask AS ezcontentclass_language_mask',

                'a.id AS ezcontentclass_attribute_id',
                'a.serialized_name_list AS ezcontentclass_attribute_serialized_name_list',
                'a.serialized_description_list AS ezcontentclass_attribute_serialized_description_list',
                'a.identifier AS ezcontentclass_attribute_identifier',
                'a.category AS ezcontentclass_attribute_category',
                'a.data_type_string AS ezcontentclass_attribute_data_type_string',
                'a.can_translate AS ezcontentclass_attribute_can_translate',
                'a.is_required AS ezcontentclass_attribute_is_required',
                'a.is_information_collector AS ezcontentclass_attribute_is_information_collector',
                'a.is_searchable AS ezcontentclass_attribute_is_searchable',
                'a.placement AS ezcontentclass_attribute_placement',
                'a.data_float1 AS ezcontentclass_attribute_data_float1',
                'a.data_float2 AS ezcontentclass_attribute_data_float2',
                'a.data_float3 AS ezcontentclass_attribute_data_float3',
                'a.data_float4 AS ezcontentclass_attribute_data_float4',
                'a.data_int1 AS ezcontentclass_attribute_data_int1',
                'a.data_int2 AS ezcontentclass_attribute_data_int2',
                'a.data_int3 AS ezcontentclass_attribute_data_int3',
                'a.data_int4 AS ezcontentclass_attribute_data_int4',
                'a.data_text1 AS ezcontentclass_attribute_data_text1',
                'a.data_text2 AS ezcontentclass_attribute_data_text2',
                'a.data_text3 AS ezcontentclass_attribute_data_text3',
                'a.data_text4 AS ezcontentclass_attribute_data_text4',
                'a.data_text5 AS ezcontentclass_attribute_data_text5',
                'a.serialized_data_text AS ezcontentclass_attribute_serialized_data_text',

                'g.group_id AS ezcontentclass_classgroup_group_id',

                'ml.name AS ezcontentclass_attribute_multilingual_name',
                'ml.description AS ezcontentclass_attribute_multilingual_description',
                'ml.language_id AS ezcontentclass_attribute_multilingual_language_id',
                'ml.data_text AS ezcontentclass_attribute_multilingual_data_text',
                'ml.data_json AS ezcontentclass_attribute_multilingual_data_json',
            ])
            ->from('ezcontentclass', 'c')
            ->leftJoin(
                'c',
                'ezcontentclass_attribute',
                'a',
                $expr->andX(
                    $expr->eq('c.id', 'a.contentclass_id'),
                    $expr->eq('c.version', 'a.version')
                )
            )
            ->leftJoin(
                'c',
                'ezcontentclass_classgroup',
                'g',
                $expr->andX(
                    $expr->eq('c.id', 'g.contentclass_id'),
                    $expr->eq('c.version', 'g.contentclass_version')
                )
            )
            ->leftJoin(
                'a',
                'ezcontentclass_attribute_ml',
                'ml',
                $expr->andX(
                    $expr->eq('a.id', 'ml.contentclass_attribute_id'),
                    $expr->eq('a.version', 'ml.version')
                )
            )
            ->orderBy('a.placement');

        return $q;
    }