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模块的确切版本。 一些建议:

  1. 检查您的Hibernate JAR是否包含META-INF/MANIFEST.MF及其中的版本。 看起来JBoss人员此时正在使用Ant而Manifest不提供该版本。

  2. 挖掘JBoss Embedded SVN ,找出他们正在做的事情。

  3. 尝试使用JBoss嵌入式beta3.SP12 (您可以从Maven存储库获取)。

  4. 尝试用包含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 。 如果我错了,请纠正我。