Выбор ответа Middle Symfony кратко спрашивают часто обновлено
persist и flush в Doctrine
Вопрос
Что делает $em->persist($order) в Doctrine?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Берёт сущность под Unit of Work, INSERT в flush(). persist лишь сообщает EntityManager о новой сущности.
Варианты ответа
- Сразу выполняет INSERT в отдельной транзакции
- Сохраняет все изменения всех сущностей в базу
- Берёт сущность под Unit of Work, INSERT в
flush()правильный ответ - Обновляет сущность актуальными данными из базы
Разбор
persist лишь сообщает EntityManager о новой сущности. При flush Unit of Work вычисляет изменения всех управляемых сущностей и выполняет SQL в транзакции. Для уже загруженных сущностей persist не нужен: изменения найдутся при flush. Обновление из базы делает refresh.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.