将连接转换为 EntityManagerFactory 或 EntityManager

Convert Connection to EntityManagerFactory or EntityManager

问题:当你只有一个 java.sql.Connection 对象时,有没有办法获取 EntityManagerFactory 或 EntityManager 对象?

说明:我们有一个专为访问我们的Oracle数据库而建的项目。这几乎都是遗留代码,并且数据库的设置并不是 ORM 友好的。不过,我们正在尝试使用 Eclipselink 制作任何新表和添加内容。我遇到的问题是整个项目都设置为传递连接对象。因此,我不会获得用于使用 EntityManagerFactory 访问数据库的 url、用户名或密码。

我已经尝试从与元数据的连接中提取信息,但我能得到的似乎只有 url 和用户名。密码似乎不存在,我假设是出于安全原因。

似乎 EntityManagerFactory 和 Connection 是非常相似的对象,所以我希望找到一种简单的方法来转换它,但只找到了 EM 到 Connection,而不是 Connection 到 EM(或 EMF),所以我来了寻求帮助,或者至少是明确的否定,这是不可能的。谢谢!

评论区已经回答了。所以我想 post 它作为清晰和完整的答案。以防以后有人遇到这个问题。

"You can wrap the connection in an EMF/EM using native API, but without knowing anything about the persistence unit (defined in a persistence.xml), you won't get any value from it. You would need to create a persistence unit (with entities etc) and then load it to use your connection, though it would be better if you used a connection pool which you can pass as a property to JPA" http://onpersistence.blogspot.com/2008/04/eclipselink-and-datasources.html

谢谢克里斯(来自评论。)