【发布时间】:2015-01-09 16:06:36
【问题描述】:
问题:当您只有一个 java.sql.Connection 对象时,有什么方法可以获取 EntityManagerFactory 或 EntityManager 对象?
解释:我们有一个专门用于访问我们的 Oracle 数据库的项目。这几乎都是遗留代码,并且数据库的设置并不完全对 ORM 友好。我们正在尝试使任何新表和添加都使用 Eclipselink。我遇到的问题是整个项目都设置为传递连接对象。所以我不会有使用 EntityManagerFactory 访问数据库的 url、用户名或密码。
我尝试从与元数据的连接中提取信息,但我能得到的似乎只是 url 和用户名。密码似乎不存在,我假设是出于安全原因。
似乎 EntityManagerFactory 和 Connection 是非常相似的对象,所以我希望找到一种简单的方法来转换它,但只找到了 EM 到 Connection,而不是 EM(或 EMF)的连接,所以我来寻求帮助,或者至少是明确的不,这是不可能的。谢谢!
【问题讨论】:
-
您可以使用本机 API 将连接包装在 EMF/EM 中,但在不了解持久性单元(在 persistence.xml 中定义)的情况下,您不会从中获得任何价值。您需要创建一个持久性单元(带有实体等),然后加载它以使用您的连接,但如果您使用可以作为属性传递给 JPA onpersistence.blogspot.com/2008/04/… 的连接池会更好
-
这正是我所需要的。我没有意识到 EMF 属性有这么多选项。如果您将此作为答案,我将接受它作为答案。谢谢!
标签: database oracle connection eclipselink entitymanager