2010-05-11 3 views
0

Я хочу управлять подключением к базе данных вне контекста диспетчера объектов, чтобы я мог использовать его для разных менеджеров сущностей. Вопрос в том, как я могу создать менеджер фабрики сущностей или диспетчер объектов с моим собственным соединением вместо того, чтобы предоставлять ему свойства в файле persistence.xml?Администратор сущности JPA с конкретным экземпляром соединения JDBC

+0

Является ли это в рамках приложения SE или контекста EE? – Justin

+0

Это приложение SE. – Wickoo

ответ

1

В любом случае ответ заключается в том, что вы не можете, в SE вы можете указать свойства соединения db при создании EntityManagerFactory, но соединение db по-прежнему поддерживается EntityManager и, по уважительной причине, если вы контролируете это, вы можете выполнить и откат за спиной EntityManager. Если бы вы дали одно и то же соединение с несколькими EntityManager, это было бы хаосом, я не уверен, почему вы хотите это сделать.

Лучшее, что я могу предложить, заключается в том, что вы изучаете методы EntityManager.getDelegate() (JPA 1.0) или EntityManager.unwrap (java.lang.Class cls) (JPA 2.0), которые они могут вернуть базовому провайдеру (т.е. Hibernate), из которого вы можете вывести соединение с базой данных, но вы, конечно же, не сможете его заменить.

Короче говоря, очень плохая идея.

Смежные вопросы