Могу ли я заставить репозиторий Doctrine 2 сначала проверить entityManager на наличие результатов

Я ожидал, что хранилище Doctrine 2 проверит EntityManager для результатов в первую очередь. Но это не так.

Этот код представляет проблему.

$em = $this->getEntityManager();

$firstName = 'Michael';
$lastName = 'Jordan';
$userEntity = new User($firstName, $lastName);

$em->persist($userEntity);

$userRepository = $em->getRepository('UserRepository');

$expectingMichaelJordanUserEntity = $userRepository->findOneBy(array('firstName' => $firstName, 'lastName' => $lastName));

В этом примере $expectingMichaelJordanUserEntity является null потому что объект не был сохранен в базе данных. Разве он не должен искать внутри менеджера сущностей в первую очередь постоянные сущности?

В этом ли смысл или есть способ заставить мой пример вернуть User юридическое лицо?

0

Решение

Вы просите учение findOneBy эти критерии внутри базы данных. В вашем случае он возвращает ноль, но он мог бы также вернуть запись, если бы был такой пользователь firstName = 'Michael' AND lastName = 'Jordan' внутри вашей базы данных.

Результатом этого query не имеет ничего общего с вашим вновь созданным пользователем.

Если он вернет пользователя из EntityManager тогда вы бы не знали, из базы это или из памяти.

0

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

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

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