EntityManagerFactory является глобальным, поэтому то, что вы предлагаете, будет работать не очень хорошо.Если вы обновите (то есть создадите заново) EnitytManagerFactory, это повлияет на все приложение, а не только на текущий запрос / поток / пользователя.Если вы действительно хотите иметь разные учетные данные базы данных для каждого пользователя, Hibernate не ваш лучший выбор.По сути, вам нужно было бы создать уникальный EntityManagerFactory для каждого сеанса, который будет генерировать много накладных расходов производительности и дублирования памяти.Вы также не можете использовать пулы соединений, так как вам все равно нужно открывать новое соединение для каждого пользователя.
Мой совет, переосмыслите ваши требования и вашу архитектуру.Если вы не можете отойти от учетных данных пользователя в базе данных и должны использовать Hibernate, то вам придется значительно снизить производительность, память и сложность, поскольку вам нужно открывать и закрывать новые сущности управления объектами для каждого сеанса пользователя.1003 *