我有一段时间试图找出支持在java8 JRE上运行的Hibernate的最低版本,其中用户代码将使用java8功能。
我找到了this bug,但它谈到了在hibernate中使用java8功能,它计划用于hibernate 5.2并且肯定hibernate 4.3.1已经支持java8,因为Wildfly发布它并声称完全支持java8。
我试图找到与java8相关的in the hibernate bug tracker个错误,但所有错误都是“太新”了。
最后我在Hibernate发行版中搜索了.0版本,并且再次没有成功:似乎发行说明只会描述自上一次RC或beta发布以来的变化......我试着跟踪所有RC和beta版本为4.3.0.Final和4.2.0.Final,但未能找到这样的提及。
我们目前正在使用Hibernate 4.2.12.Final,我想知道我们是否可以开始使用java8,或者我们是否需要升级到更新版本的hibernate(大概是4.3.x)。
对于某些上下文,我们使用TomEE作为应用程序服务器。 1.7.0刚刚发布,支持java8。但是,如果我们必须升级到hibernate 4.3.x,我有点担心我们不能将Hibernate 4.3.x和TomEE一起使用,因为我已经看到了这个:"However, Hibernate 4.3+ (JPA 2.1) is not supported by TomEE, because it's Java EE 7."。所以如果可能的话,我们宁愿坚持4.2.x。
编辑:我发现this,有人说“我们使用hibernate(和4.3.x支持java 8)”。所以可能需要4.3.x。
答案 0 :(得分:5)
这取决于您的意思"用户代码将使用java8功能"。在我的工作地点,我们仍然使用古老版本的Hibernate 3和Java 8,它工作正常。但是,我们的实体都没有使用Java 8功能,只使用我们实体的代码。
我认为Hibernate和Java 8的问题与知道如何映射使用lambdas或默认方法的实体以及新的Optional
类和time
包有关。
如果你不需要映射到那些,你应该没事。
答案 1 :(得分:0)
除了在其他答案中讨论的运行时兼容性之外,Hibernate还提供了自版本5.0.x以来的hibernate-java8模块 - 它增加了Java 8特定的支持,主要用于java.time包数据类型。