В соответствии со спецификацией JPA обязателен файл persistence.xml с именем единицы сохраняемости, типом транзакции JTA (поскольку я буду использовать его в контейнере Java EE), именем источника данных, идентификатором пользователя и паролем.
Вышеприведенное справедливо как для диспетчера управляемых объектов контейнера, введенного с использованием @PersistenceContext, так и для фабрики диспетчера управляемых объектов приложения, введенной с использованием @PersistenceUnit.
Мой запрос в случае одного экземпляра сервера, обслуживающего несколько баз данных. У меня разные источники данных в зависимости от региона, в котором будет обслуживаться приложение, поэтому я хочу иметь возможность определять источник данных во время выполнения, а не во время компиляции с использованием файла persistence.xml. ,
Я пытался использовать Persistence API для создания фабрики диспетчера сущностей, но этот метод, по-видимому, не требуется для какого-либо контейнера для обеспечения поддержки.
Несмотря на то, что я хотел бы следовать спецификации jee при определении уровня персистентности, этот конкретный элемент возможности обращаться к нескольким источникам данных во время выполнения не выглядит как готовая функция, предоставляемая JPA.
Использование прямой реализации Hibernate У меня есть возможность программно установить необходимый источник данных. Кто-нибудь сталкивался с подобной ситуацией и решил использовать Hibernate или любую другую реализацию для персистентного провайдера, вместо того, чтобы жестко задавать специфические особенности для конкретного файла persistence.xml?