在我的Zend項目中使用Doctrine 2 ORM並需要在幾種情況下將我的實體序列化爲JSON。使用JMS序列化器時禁用Doctrine 2延遲加載?
ATM我使用Querybuilder並加入我需要的所有表。但是我的序列化器會導致原則惰性加載每個關聯的實體,這會導致相當大的數據量並引發遞歸。
現在我正在尋找一種方法來完全禁用Doctrines惰性加載行爲。
我的方式來選擇數據將是如下:
$qb= $this->_em->createQueryBuilder()
->from("\Project\Entity\Personappointment", 'pa')
->select('pa', 't', 'c', 'a', 'aps', 'apt', 'p')
->leftjoin('pa.table', 't')
->leftjoin('pa.company', 'c')
->leftjoin('pa.appointment', 'a')
->leftjoin('a.appointmentstatus', 'aps')
->leftjoin('a.appointmenttype', 'apt')
->leftjoin('a.person','p')
我想我的結果集只包含選定表和協會。
任何幫助將不勝感激。
你可以發佈你的實體? – Stony 2012-07-23 09:11:28
如果您使用JMS序列化程序,請依靠我的答案。 如果您想完全避免使用JMS Serializer,請依靠Exanders Answer(特別是註釋)。 – 2012-07-31 13:47:35