0

我们需要在运行时根据系统属性选择 JPA 提供程序(Hibernate 或 EclipseLink)。

据我了解,提供者名称必须在persistence.xml 中给出,并且不能在代码中被覆盖。如果未给出提供者名称,则默认使用类路径中的第一个提供者。另一种选择可能是使用 2 个不同的 persistence.xml 并根据系统属性的值加载其中一个。但是,这似乎也不可能(JPA 使用替代“persistence.xml”)。

有没有其他方法可以做到这一点?

4

2 回答 2

1

事实证明,通过在 persistence.xml 中定义多个持久性单元,每个具有不同的提供者名称,有一种简单的方法可以做到这一点。

然后在运行时,在创建 EntityManagerFactory 时传递正确的持久性单元名称。

于 2012-06-26T23:53:43.773 回答
0

Another way is to access the persistence provider directly, instead of through Persistence.

于 2012-06-27T12:57:57.360 回答