В отличии от привычного вам "слоя SQL запросов", Доктрина не стремится сохранять в БД каждое изменение при первом же чихе пользователя. Изменяйте сущности в пределах разумного, затем один раз обновите все это в хранилище одним flush(). Это правильно и нормально, когда ваш скрипт в начале работы делает select'ы, а в конце — update/delete. И неправильно, когда по ходу работы скрипта в базу летит пачка запросов на модификацию разных полей в одной и той же табличке. Вначале немного ломает, но подиссонируете и попустит =)