2010-12-12 2 views
1

В настоящее время мы создаем единый EntityManager для каждого запроса в нашем веб-приложении. Мы хотим создать транзакцию в начале запроса и закрыть ее в конце, чтобы получить автоматическую поддержку транзакций в течение всего запроса.Вопрос о параллелизме с транзакциями jpa 1.0

Кто-нибудь пробовал это? и это приведет к возникновению проблем параллелизма или же мы должны просто обернуть весь наш код обновления в отдельной транзакции?

Примечание мы используем JPA 1.0

+1

Какой сервер (в частности, какая версия) работает? Есть ли причина, по которой вы не можете просто вводить «EntityManager» в свои EJB, используя '@ PersistenceContext'? –

ответ

1

Для простых приложений, этого достаточно (одна сделки по запросу). Но для более сложных сценариев вам нужно будет использовать транзакции на более узком уровне.

В принципе, я всегда обрабатываю транзакции обновления по мере необходимости.

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

И что-то о возможных проблемах с параллелизмом ... Если вы можете предвидеть проблемы, обратитесь к ним, иначе я бы не стал слишком беспокоиться об этом. Держите его простым и не увязайте в преждевременной оптимизации.