我有一个 100% 兼容 JPA2 的应用程序,它需要可移植到许多应用程序服务器。符合 JPA(理论上)意味着我们可以通过配置切换 JPA 提供程序(例如,无需更改源代码)——(对吗???)。
当在 servlet 容器(例如 Tomcat、Jetty)中运行时,应用程序被配置为使用 Hibernate 运行。我们选择 Hibernate 而不是 TopLink 和 Eclipselink 是因为它的成熟度和性能。到目前为止,这有效。
但是,当在 Java EE 应用程序服务器中运行时,我们应该默认使用其中的 JPA 提供程序,还是坚持使用 Hibernate?
我知道在 JBoss 中,提供者是 Hibernate,所以它可能无关紧要。但是,我认为WebLogic 中的提供者是 Eclipselink。我不知道提供者 WebSphere 或 Glassfish 使用什么,但我看到了有关如何在这些应用程序服务器中使用 Hibernate 作为提供者的详细说明。
我想问这个问题的另一种方式是在这些应用程序服务器中使用 Hibernate 会丢失什么?