一般我会在我的项目中使用以下框架:Spring MVC + Hibernate with Tomcat as container。
而且我从不关心版本,越晚越好。
这是项目中具体的SDK、框架版本:
JDK 1.7
Spring Framework:
spring-webmvc >> 4.1.6.RELEASE
Hibernate:
hibernate-entitymanager >> 4.3.10.Final
org.hibernate.javax.persistence >> hibernate-jpa-2.1-api >> 1.0.0.Final
Tomcat 7
该应用程序在 tomcat 下运行良好,但是当我将应用程序从 Tomcat 部署到 Java EE 服务器(仅支持 JavaEE 5)时遇到一些问题。
我得到的一个错误是这样的:
java.lang.NoSuchMethodError: javax.persistence.Table.indexes()
看来indexes
是JPA2.1中的新方法(JavaEE 7支持),而Java EE服务器没有提供。
但是如图所示,hibernate依赖org.hibernate.javax.persistence >> hibernate-jpa-2.1-api >> 1.0.0.Final
提供方法,为什么Java EE Server可以不用那个?
为了解决这个问题,对于一个给定的 JavaEE Server 说它只支持 JavaEE 5,在选择 JDK、框架时应该考虑什么?
最佳答案
JPA 2.1 适用于 JavaEE7 和 Java 7 以上版本。
对于 JavaEE 与 JDK 版本的兼容性,我会看一下这个 previous StackOverflow question .
关于java - 如何选择合适的 JDK JavaEE Spring 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30949624/