问题:当你拥有的是java.sql.Connection对象时,有没有办法获得EntityManagerFactory或EntityManager对象?
解释:我们有专门为访问Oracle数据库而构建的项目。这几乎都是遗留代码,数据库并没有完全建立ORM友好。我们试图让任何新的表和添加使用Eclipselink。我遇到的问题是整个项目设置为传递连接对象。所以我没有使用EntityManagerFactory访问数据库的URL,用户名或密码。
我尝试从元数据的连接中提取信息,我所能得到的似乎只是网址和用户名。密码似乎不存在,我出于安全原因假设。
似乎EntityManagerFactory和Connection是非常相似的对象所以我希望找到一种简单的方法来转换它但只找到EM到Connection,而不是连接到EM(或EMF),所以我来寻求帮助,或者至少是肯定的否,这是不可能的。谢谢!
答案 0 :(得分:0)
在评论部分对此进行了回答。因此以为我会将其发布为答案,以确保内容的清晰度和完整性。万一以后有人碰到这个问题。
“您可以使用本机API将连接包装在EMF / EM中,但是在不了解持久性单元(在persistence.xml中定义)的情况下,您将不会获得任何价值。您需要创建一个持久性单元(包含实体等),然后将其加载以使用您的连接,但是如果您使用一个连接池,可以将其作为属性传递给JPA,则会更好。“ http://onpersistence.blogspot.com/2008/04/eclipselink-and-datasources.html
感谢克里斯(摘自评论)。