#jpa #eclipselink
#jpa #eclipselink
Вопрос:
Имея два экземпляра JPA2 (EclipseLink) EntityManagerFactory
, каков наилучший способ определить, что их атрибуты PersistenceUnit идентичны?
Ответ №1:
Вы можете вызвать GetProperties(), чтобы получить свойства единицы сохранения и сравнить их.
Обычно EclipseLink будет использовать одну и ту же серверную сессию EclipseLink, если одна и та же единица сохранения используется дважды. Вы можете вызвать unwrap(Session.class ), чтобы получить сеанс и посмотреть, совпадают ли они.
Комментарии:
1. getPropperties() возвращает только eclipselink .??? свойства из persistency.xml , но не свойства, определяющие соединение: источник данных, URL-адрес подключения, пользователь и т.д.
Ответ №2:
Я думаю, что вам лучше всего получить (каким-то образом, каким-то образом …) доступ к PersistenceUnitInfo
интерфейсу, который реализован и создан контейнером и передан поставщику JPA. Поставщик JPA использует его при создании EntityManagerFactory
.