Doctrine ResultSetMapping ManyToMany

时间:2013-12-18 22:36:15

标签: mysql doctrine-orm resultset

有没有办法使用resultsetmapping为多人关联构建本机查询?

示例:

我的实体

<?php
namespace Application\Entity;
use Doctrine\ORM\Mapping as ORM;

/**
 * MyEntityA
 *
 * @ORM\Table(name="MyTableA")
 * @ORM\Entity(repositoryClass="Application\Repository\MyEntityA")
 */
class MyEntityA
{
    /**
     * @var integer
     *
     * @ORM\Column(name="ID", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     * @access protected
     * @var int
     */
    protected $ID;

    /**
     * @access protected
     * @ORM\ManyToMany(targetEntity="\Application\Entity\MyEntityB")
     * @ORM\JoinTable(name="MyTableAB",joinColumns={@ORM\JoinColumn(name="AID", referencedColumnName="AID")},inverseJoinColumns={@ORM\JoinColumn(name="BID", referencedColumnName="BID", unique=true)})
     * @var \Doctrine\Common\Collections\ArrayCollection
     */
    protected $Bs;
}

我的存储库

public function myFindFunction()
{
    $rsm = new ResultSetMapping();
    $rsm->addEntityResult('Application\Entity\MyEntityA', 't1');
    $rsm->addFieldResult('t1', 'ID', 'ID');

    $sql = 'SELECT ';
    $sql .= 't1.ID, ';
    $sql .= 'FROM MyTableAt1 ';

    $query = $this->_em->createNativeQuery($sql, $rsm);
    return $query->getResult();
}

有没有办法在myFindFuntion中映射“Bs”?我无法通过resultsetmapping找到一种方法吗?

由于

0 个答案:

没有答案