возможно ли добиться ленивой загрузки с ассоциациями OneToOne без взлома или изменений БД?
Пример:
class User
{
/**
* @ORM\OneToOne(targetEntity="UserData", mappedBy="user", cascade={"persist"})
*/
private $userData;
}
class UserData
{
/**
* @ORM\OneToOne(targetEntity="User", inversedBy="userData")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
private $user;
}
Объект UserData объекта не может быть загружен с отложенным доступом, поэтому всякий раз, когда я выбираю объект User, я также выбираю связанный объект UserData.
Я наткнулся на 2 обходных пути
Обходной путь БД - не храните user_id в сущности UserData, но user_data_id в сущности User. Тогда лайз загрузка может быть достигнута. Но это нехорошо с точки зрения реляционных БД.
Подделать ассоциацию как OneToMany.
Почему я рассматриваю тему, которая обсуждалась много раз?
Я нашел эту проблему - https://github.com/doctrine/orm/pull/970
Таким образом, есть способ включить отложенную загрузку для ассоциаций OneToOne.
У меня вопрос, есть ли прогресс? Есть что-то, чего я не знаю?
Спасибо