0

大量のデータを含む DB があり、JOIN を使用して DQL で単純なクエリを作成したいのですが、「関連付けがありません」というエラーが発生します。1 つの DB に「main」と「users_main」の 2 つのテーブルがあり、もう 1 つの DB に 1 つのテーブルがあります」

これは私のコードです:

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() を呼び出すと、次のエラーが発生します。

[Semantical Error] line 0, col 161 near 'AS u ': Error: Class Vt\KohanaBundle\Entity\AdsMain has no association named user 500 Internal Server Error - QueryException

誰でも私を助けてもらえますか?

4

1 に答える 1

0

ドキュメントを確認してください

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

マッピングが正しくありません。

于 2012-08-23T03:16:34.977 に答える