大量のデータを含む 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
誰でも私を助けてもらえますか?