parameters:
    doctrine.orm.entity_manager.class: Oro\Bundle\EntityBundle\ORM\OroEntityManager
    doctrine.orm.configuration.class:  Oro\Bundle\EntityBundle\ORM\OrmConfiguration

services:
    oro_entity.doctrine_helper:
        class: Oro\Bundle\EntityBundle\ORM\DoctrineHelper
        public: true
        arguments:
            - '@doctrine'

    Oro\Bundle\EntityBundle\ORM\DoctrineHelper:
        alias: 'oro_entity.doctrine_helper'

    oro_entity.abstract_repository:
        class: Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository
        arguments:
            - '@doctrine'
        abstract: true

    oro_entity.entity_identifier_accessor:
        class: Oro\Bundle\EntityBundle\ORM\EntityIdAccessor
        arguments:
            - '@oro_entity.doctrine_helper'

    Oro\Bundle\EntityBundle\ORM\EntityIdAccessor:
        alias: oro_entity.entity_identifier_accessor

    oro_entity.orm.entity_class_resolver:
        class: Oro\Bundle\EntityBundle\ORM\EntityClassResolver
        arguments:
            - '@doctrine'

    oro_entity.query_hint_resolver:
        class: Oro\Component\DoctrineUtils\ORM\QueryHintResolver
        arguments:
            - !abstract '$walkers defined in Oro\Bundle\EntityBundle\DependencyInjection\Compiler\QueryHintResolverPass'
            - !abstract '$walkerHintProviders defined in Oro\Bundle\EntityBundle\DependencyInjection\Compiler\QueryHintResolverPass'
            - !abstract '$aliases defined in Oro\Bundle\EntityBundle\DependencyInjection\Compiler\QueryHintResolverPass'

    oro_entity.orm.native_query_executor_helper:
        class: Oro\Bundle\EntityBundle\ORM\NativeQueryExecutorHelper
        arguments:
            - '@doctrine'

    oro_entity.orm.insert_from_select_query_executor:
        class: Oro\Bundle\EntityBundle\ORM\InsertFromSelectQueryExecutor
        arguments:
            - '@oro_entity.orm.native_query_executor_helper'
        public: true

    oro_entity.orm.insert_from_select_no_conflict_query_executor:
        class: Oro\Bundle\EntityBundle\ORM\InsertFromSelectNoConflictQueryExecutor
        arguments:
            - '@oro_entity.orm.native_query_executor_helper'
        public: true

    oro_entity.orm.multi_insert_query_executor:
        class: Oro\Bundle\EntityBundle\ORM\MultiInsertQueryExecutor
        arguments:
            - '@oro_entity.orm.native_query_executor_helper'
        public: true
        shared: false

    oro_entity.query_hint.precise_order_by:
        public: false
        abstract: true
        tags:
            -
                name: oro_entity.query_hint
                hint: oro_entity.precise_order_by
                alias: HINT_PRECISE_ORDER_BY
                tree_walker: Oro\Component\DoctrineUtils\ORM\Walker\PreciseOrderByWalker
