我想管理实体管理器上下文之外的数据库连接,以便我可以将它用于不同的实体管理器。问题是我如何使用自己的连接构建实体管理器工厂或实体管理器,而不是在persistence.xml中为其提供属性?
答案 0 :(得分:1)
在任何一种情况下答案都是你不能,在SE中你可以在创建EntityManagerFactory时指定数据库连接属性,但是数据库连接仍由EntityManager维护,并且有充分的理由,如果你控制了这个,你可以提交和在EntityManager后面回滚。如果你给多个EntityManager提供相同的数据库连接,这确实会很混乱,我不确定你为什么要这样做。
我能建议的最好的是你查看EntityManager.getDelegate()(JPA 1.0)或EntityManager.unwrap(java.lang.Class cls)(JPA 2.0)方法,它们可能会返回底层提供程序(即Hibernate) )你可能能够撬开数据库连接的对象,但你肯定无法替换它。
总之非常糟糕的主意。