Hibernate版本?
我正在使用JBoss Embedded版本beta3.SP10,我正面临一个应该在某些Hibernate版本中修复的持久性错误。 遗憾的是,我不知道在我的JBoss Embedded中使用了哪个版本的Hibernate,并且无法找到找到这些信息的方法,捆绑在其中的hibernate-all.jar
不包含org.hibernate.Version
类,也不是一个清醒。
如何在不使用org.hibernate.Version
情况下找到当前加载的Hibernate版本?
尝试这个,
System.out.println(org.hibernate.Version.getVersionString());
在这里找到
这个简单的Java代码是获取Hibernate版本的。
package com.test; public class TestBean { public static void main(String[] args) { try { String hibernateVersion = org.hibernate.annotations.common.Version.VERSION; System.out.println("Hibernate Version: "+ hibernateVersion); } catch (Exception e) { e.printStackTrace(); } } }
输出: Hibernate Version: 3.1.0.GA
另一种获取版本的方法。
System.out.println(org.hibernate.cfg.Environment.VERSION)
这适用于旧版本的Hibernate。 例如3.3.1.GA
实际上,似乎很难找到使用Hibernate模块的确切版本。 一些建议:
-
检查您的Hibernate JAR是否包含看起来JBoss人员此时正在使用Ant而Manifest不提供该版本。META-INF/MANIFEST.MF
及其中的版本。 -
挖掘JBoss Embedded SVN ,找出他们正在做的事情。
-
尝试使用JBoss嵌入式beta3.SP12 (您可以从Maven存储库获取)。
-
尝试用包含Hibernate EM 3.4.0.GA的包替换hibernate-all。
我会尝试选择3和4。
我更喜欢@Shell的方式,而不是@pudaykiran的方式。 实际上,我发现这两种方式在我的情况下获得了不同的输入。 正如@pudaykiran所说,我得到了:
3.2.0决赛
正如@Shell所说:
3.5.4决赛
我猜3.5.4最终版本使用了以前版本的org.hibernate.annotations.common
。 如果我错了,请纠正我。