Doctrine CTI охотно загружает связанные объекты, определенные в подклассе ассоциации

Я пытаюсь с готовностью загрузить связанные сущности, определенные в подклассе ассоциации (в DQL), чтобы эта связь не загружалась лениво (что вызвало много отдельных запросов).

Пример ситуации

Предположим, у меня есть бизнес с людьми (которых я буду называть людьми для простоты), из которых несколько являются сотрудниками. Сотрудник может иметь в своем распоряжении книги, в то время как все остальные люди не могут.

/**
* @Entity
*/
class Business
{
/**
* @OneToMany(targetEntity="Person", mappedBy="business")
*/
private $persons;
}

/**
* @Entity
* @InhertianceType("JOINED")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})
*/
class Person
{
/**
* @ManyToOne(targetEntity="business", inversedBy="persons")
* @JoinColumn(name="business_id", referencedColumnName="id")
*/
private $business;
}

/**
* @Entity
*/
class Employee extends Person
{
/** ... */
private $books;
}

/**
* @Entity
*/
class Book { /* ... */ }

Сущности, представляющие ситуацию в PHP.

проблема

Я хочу получить бизнес-единицу и всех ее лиц, в то же время охотно загружая книги всех сотрудников, чтобы они не загружались лениво для каждого отдельного сотрудника.

Если бы я делал это с помощью DQL-запроса, мне пришлось бы понизить связь Person с Employee, чтобы присоединиться к книгам. Это, однако, невозможно в DQL. (см. соответствующий вопрос по этой теме)

Возможный нерабочий пример в DQL:

SELECT
business, employee, employeeBook
JOIN
CAST(business.persons AS Entity\Employee) AS employee
JOIN
employee.books AS employeeBook

Так как это нерабочий пример … Как бы / я должен сделать это и как?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]