У меня есть EntityManagerFactory
, для которого я могу создать один (или несколько) экземпляров EntityManager
. Я использую среду Servlet, и у меня есть один EntityManagerFactory, подключенный к сервлету (через контекст сервлета), который совместно используется для срока службы сервлета (и, следовательно, для всех пользователей).
Я могу сделать одно из следующего:
- Создайте единый EntityManager для срока службы моего сервлета (например, общий для всех пользователей)
- Создайте один для каждого пользователя (поэтому каждый пользователь получает свои собственные в HttpSession)
- Создайте один для HTTP-запроса (скажем, создавая новый экземпляр и закрывая его в конце метода
doGet
)
Что наиболее подходит? Значительна ли стоимость создания EntityManager? Если я делаю один общий EntityManager, есть ли одна область транзакции (например, обновления между независимыми пользователями могут совершать другие изменения)?