EntityManager на пользователя в веб-приложении tomcat - PullRequest
1 голос
/ 30 мая 2020

У меня необычное требование к моему веб-приложению. Это обычное приложение tomcat, spring, hibernate, но каждый пользователь хочет выбрать БД для работы сразу после входа в систему. После успешного входа в систему пользователь получает раскрывающийся список с доступными базами данных, выбирает одну и продолжает использовать приложение. Все базы данных имеют одинаковую схему, только разные данные и данные подключения хранятся в файле свойств.

Думаю, мне нужно создать EntityManager для каждого пользователя после входа в систему. Мне интересно, как лучше всего это сделать. Возможно, также имеет смысл, что когда два пользователя выбирают одну и ту же БД, они совместно используют EntityManager (например, проверьте, существует ли уже EntityManager для этой БД, прежде чем создавать новую). Я также хочу использовать объединение соединений для EntityManager

Конкретные вопросы

  1. Есть ли передовая практика?
  2. Какой EntityManagerFactory (см. Ниже) подходит, контейнер -базовый или автономный?
  3. Есть ли какие-либо риски, такие как утечка памяти, производительность и т. д. c.?

Пока что я проверил следующие классы из spring:

  • LocalEntityManagerFactoryBean
  • LocalContainerEntityManagerFactoryBean

Это также ссылка, которая создает EntityManager программно, но с классами Spring https://vladmihalcea.com/how-to-bootstrap-jpa-programmatically-without-the-persistence-xml-configuration-file/

...