Чем отличается refresh от persist в doctrine 2?

Рейтинг: 3Ответов: 1Опубликовано: 07.04.2015

Какая разница будет между

$em = $this->getDoctrine()->getManager();
$em->persist($entity);
$em->flush();

и

$em = $this->getDoctrine()->getManager();
$em->refresh($entity);

Спасибо.

Ответы

▲ 8Принят

Разница очень большая.

Метод persist выполняет сохранение объекта в базе данных (точнее не сохранение а его подготовку, физически запись в базу происходит при вызове flush)

Метод refresh перечитывает данные сущности из базы. Если вы изменили какие-либо данные у объекта и не выполнили persist, при вызове refresh они будут сброшены.