Преобразовать соединение в EntityManagerFactory или EntityManager

Вопрос: есть ли способ получить объект EntityManagerFactory или EntityManager, когда у вас есть только объект java.sql.Connection?

Объяснение: у нас есть проект, специально созданный для доступа к нашей базе данных Oracle. Это все в значительной степени устаревший код, и база данных не совсем настроена на ORM. Мы пытаемся сделать любые новые таблицы и дополнения, используя Eclipselink, хотя. У меня проблема в том, что весь этот проект был настроен на передачу объекта подключения. Поэтому у меня не будет URL-адреса, имени пользователя или пароля для доступа к базе данных с помощью EntityManagerFactory.

Я попытался извлечь информацию из соединения с метаданными, и все, что я могу получить, кажется, это URL и имя пользователя. Кажется, пароля там нет, я полагаю по соображениям безопасности.

Кажется, что EntityManagerFactory и Connection очень похожи, поэтому я надеялся найти простой способ его преобразования, но нашел только EM для Connection, а не Connection для EM(или EMF), и поэтому я пришел за помощью или хотя бы однозначного нет, это невозможно. Спасибо!

0 ответов

На это был дан ответ в разделе комментариев. Поэтому подумал, что отправлю его как ответ для ясности и полноты. На случай, если кто-то столкнется с этим вопросом в будущем.

"Вы можете обернуть соединение в EMF/EM с помощью собственного API, но ничего не зная о блоке сохранения состояния (определенном в файле persistence.xml), вы не получите от него никакого значения. Вам потребуется создать блок сохранения состояния (с объектами и т. д.), а затем загрузите его, чтобы использовать ваше соединение, хотя было бы лучше, если бы вы использовали пул соединений, который вы можете передать как свойство JPA" http://onpersistence.blogspot.com/2008/04/eclipselink-and-datasources.html

Спасибо Крису (из комментариев.)

Другие вопросы по тегам