Сохранение EntityManager Doctrine в переменной сеанса

Я разрабатываю веб-приложение и собираюсь использовать структуру docrine для управления одновременными запросами и транзакционными запросами (например, вставка или обновление записей заголовка и строк).

Для веб-потребностей я решил разделить операции на несколько этапов: Первый шаг: у меня есть страница, которая позволяет пользователю вставлять запись HeadTable, после чего я отправляю информацию на сервер, создаю Entity и сохраняю ее в EntityManager с помощью сохранять функцию.

Второй шаг: пользователь будет редактировать и вставлять все записи RowsTable. Когда все сделано, как и раньше, я отправляю все данные на сервер, создаю Entities и связываю их с записью HeadTable.

Последний шаг: когда пользователь подтверждает все, что он сделал, я запускаю операцию сброса EntityManager и фиксирую все в базе данных в одной атомарной транзакции. Чтобы сохранить все эти шаги вместе, я поместил EntityManager в переменную сеанса и удалил его после операции сброса.

Все вроде бы хорошо, но я хотел бы знать, правильный ли это способ решить проблему или есть ли лучший способ.


person Mirco    schedule 12.04.2011    source источник


Ответы (1)


Звучит разумно, стоит попробовать.

Однако я бы, вероятно, избегал хранения entitymanager между запросами. У него есть соединение с базой данных, о котором нужно беспокоиться, и поэтому оно, вероятно, сломается.

Однако вы можете просто сохранять свои объекты в сеансе. detach() их из их менеджера сущностей, а затем слить() их обратно при следующем запросе.

person timdev    schedule 12.04.2011