我正在尝试在一系列销售备忘录和交易记录之间建立多对一的关系。
/**
* @var TransactionInterface
*
* @ORM\ManyToOne(targetEntity="Twb\Common\Model\Broker\TransactionInterface")
* @ORM\JoinColumn(name="FormNoSeller", referencedColumnName="Form")
*/
private $formnoseller;
/**
* @var TransactionInterface
*
* @ORM\ManyToOne(targetEntity="Twb\Common\Model\Broker\TransactionInterface")
* @ORM\JoinColumn(name="FormNoBuyer", referencedColumnName="Form")
*/
private $formnobuyer;
目前它们被分成两个不同的捆绑包(“SalesBundle”和“BrokerBundle”),考虑到这一点,我正在使用从 SalesBundle 中的 SalesMemo 实体到 BrokerBundle 中的 Transaction 实体的接口。
出于某种原因,当我在表单中引用其中一个或两个时$formnoseller
,$formnobuyer
我在 dev.log 中注意到,在选择了与 SalesMemos 中的$formnoseller
和/或$formnobuyer
字段匹配的所有 Transaction 行之后,Doctrine 会尝试Transaction 表中的SELECT
所有行( TransactionInterface 引用的实体)。这有点问题,因为数据库中有无数行,占用了大量内存。
有什么方法可以让 Doctrine 避免选择所有具有关联的行?还是我什至正确理解教义如何进行关联?非常感谢您的帮助。