我现在使用这样的东西:JSF2(PrimeFaces)+ Spring& Spring-Security + JPA2(Hibernate)。我就喜欢!但不知怎的,我总是想知道:具有Hibernate的特定Spring版本的推荐(或者可能是“最佳兼容”)版本是什么?我们以Spring 3.2.6为例:
如果我看一下spring-orm POM,它似乎使用了hibernate-entitymanager 4.1.9.Final。我应该使用那个,还是最新的4.1.x版本?或者我应该使用hibernate 4.2.x?甚至4.3.x?在我的(简单)测试中,任何一个工作都很好,但后来我在这里阅读https://jira.springsource.org/browse/SPR-11240,直到春天4才支持hibernate 4.3。
总结一下:我应该使用哪个hibernate版本的spring 3.2.6.RELEASE以及找到类似信息的最佳位置(将来)。
答案 0 :(得分:9)
最好的方法是检查项目的pom是否有可选的依赖项。
在这种情况下,我们可以转到maven存储库并搜索项目pom:
$ HOME / .m2目录/库/组织/ springframework的/弹簧ORM / 3.2.6.RELEASE
-rw-r--r-- ... spring-orm-3.2.6.RELEASE.pom
打开spring-orm pom,Hibernate有一个可选的依赖项:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.1.9.Final</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>
可选依赖项可以被视为“默认排除”,如果要使用该版本或其他版本,则可以使用spring-orm来决定项目。这是项目开发人员记录某些依赖项的推荐版本的一种方式,这些依赖项并不一定要在依赖项目中强制执行。
可选的依赖项是推荐的版本,其他版本可能会或可能不会运行,但该版本的测试次数最多。