0

我有一个包含大量数据的数据库,我想用 JOIN 在 DQL 中构建一个简单的查询,但是我有一个“没有命名的关联”错误。我在一个 DB 中有 2 个表,“main”和“users_main”,另一个 DB 中有一个表“

这是我的代码:

AdsMain.php:

/**
 * @ORM\Column(name="user", type="integer", nullable=false)
 * @ORM\ManyToOne(targetEntity="Vt\KohanaBundle\Entity\AdsUsersMain")
 * @ORM\JoinColumn(name="user", referencedColumnName="id")
 */
private $user;

AdsMainRepository.php

class AdsMainRepository extends EntityRepository {

    public function findPremiumsCallCenter() {

        $em = $this->getEntityManager();
        $consulta = $em->createQuery(
                'SELECT  a.title , u.fullname
                    FROM
                        KohanaBundle:Main AS a
                            JOIN 
                        a.user AS u'
        );

        $consulta->setMaxResults(20);
        $lista = $consulta->getResult();
        return $lista;
    }
}

AdsUsersMain

class AdsUsersMain{
    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

}

教义配置

doctrine:
    dbal:
        default_connection: vt #default connection
            connections:
            vt:
                driver:   %database_driver%
                        host:     %database_host%
                port:     %database_port%
                        dbname:   %database_name_vt%
                user:     %database_user_vt%
                password: %database_password_vt%
                charset:  UTF8
            kohana:
                driver:   %database_driver%
                host:     %database_host%
                    port:     %database_port%
                dbname:   %database_name_kohana%
                user:     %database_user_kohana%
                    password: %database_password_kohana%
                charset:  UTF8
    orm:
        auto_generate_proxy_classes: %kernel.debug%
        #auto_mapping: true

        default_entity_manager: vt   
        entity_managers:
        vt:
            connection: vt
            mappings:
                VentaBundle : ~
                UsuarioBundle : ~                    
        kohana:
            connection: kohana
            mappings:
                KohanaBundle : ~

当我调用函数 findPremiumsCallCenter() 我有这个错误:

[语义错误] 第 0 行,'AS u' 附近的第 161 列:错误:Vt\KohanaBundle\Entity\AdsMain 类没有名为用户 500 内部服务器错误的关联 - QueryException

任何人都可以帮助我吗?

4

1 回答 1

0

请检查文档

http://doctrine-orm.readthedocs.org/en/2.0.x/reference/association-mapping.html

您的映射不正确。

于 2012-08-23T03:16:34.977 回答