【发布时间】:2016-08-02 16:35:36
【问题描述】:
我正在尝试在 Symfony2 中启动一个查询(我是新手),我需要在不同的包中加入两个不同的实体:
- Candc/ComercioBundle/Entity/Venta/ItemVentaCarta 和
- Candc/ProductoBundle/Entity/Producto。
他们有一个多对一一对一的关系。
Class Producto/////
/**
*
* @ORM\Id
* @ORM\Column(name="id", type="integer")
* @ORM\OneToMany(targetEntity="Candc\ComercioBundle\Venta\ItemVentaCarta", mappedBy="Producto")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
还有:
Class ItemVentaCarta//////
/**
* catalog card wich is referenced.
* @ORM\ManyToOne(targetEntity="\Candc\ProductoBundle\Entity\Producto", inversedBy="ItemVentaCarta")
* @ORM\JoinColumn(name="carta_id", referencedColumnName="id", nullable=false)
*/
private $carta;
这是我要启动的查询:
public function findLastProducts(){
//this is what I need to do in SQL language :
$consulta = 'SELECT * FROM c_venta_item
LEFT JOIN c_venta_item_carta
ON c_venta_item.id=c_venta_item_carta.id
LEFT JOIN usuario ON c_venta_item.user_id = usuario.id
LEFT JOIN producto ON c_venta_item_carta.carta_id = producto.id';
return $this->getEntityManager()
->createQuery("SELECT ivc
FROM \Candc\ComercioBundle\Entity\Venta\ItemVentaCarta ivc
LEFT JOIN ivc.producto p
WHERE ivc.carta = p.id")
->getResult();
}
我在 Symfony 2.7.7 中,但我得到的例外是:
[语义错误] 第 0 行,第 105 列靠近 'p WHERE':错误:Candc\ComercioBundle\Entity\Venta\ItemVentaCarta 类没有名为 producto 的关联
(我尝试了 producto 和 Producto,以避免错字) 也在论坛里搜索过,找了很多相关的帖子,都解决不了。
我清除了缓存,还尝试了架构更新,但我收到一条消息:
“没有什么可以更新的,你的数据库已经和实体元数据同步了”
【问题讨论】: