Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 休眠版本?_Java_Hibernate_Orm - Fatal编程技术网

Java 休眠版本?

Java 休眠版本?,java,hibernate,orm,Java,Hibernate,Orm,我使用的是beta3.SP10版本,我面临一个持久性错误,应该在某个Hibernate版本中修复。遗憾的是,我不知道我的JBoss Embedded中使用了什么版本的Hibernate,也找不到找到这些信息的方法,捆绑在其中的Hibernate all.jar既不包含org.Hibernate.version类,也不包含清单 如果不使用org.Hibernate.version,如何查找当前加载的Hibernate版本 事实上,似乎很难找到所使用的Hibernate模块的确切版本。一些建议: 检

我使用的是beta3.SP10版本,我面临一个持久性错误,应该在某个Hibernate版本中修复。遗憾的是,我不知道我的JBoss Embedded中使用了什么版本的Hibernate,也找不到找到这些信息的方法,捆绑在其中的
Hibernate all.jar
既不包含
org.Hibernate.version
类,也不包含清单


如果不使用
org.Hibernate.version
,如何查找当前加载的Hibernate版本

事实上,似乎很难找到所使用的Hibernate模块的确切版本。一些建议:

  • 检查Hibernate JAR是否有一个版本为的
    META-INF/MANIFEST.MF
    。看起来JBoss的人此时正在使用Ant,而清单没有提供版本

  • 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();
        }
    }
    }
    
    System.out.println(org.hibernate.cfg.Environment.VERSION)
    
  • 挖掘数据以了解他们到底在做什么

  • 尝试使用(可以从Maven存储库获得)

  • 尝试用包含hibernate EM 3.4.0.GA的捆绑包替换hibernate all


  • 我想尝试一下选项3和4。

    这个简单的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();
        }
    }
    }
    
    System.out.println(org.hibernate.cfg.Environment.VERSION)
    
    输出:
    休眠版本:3.1.0.GA
    试试这个

    System.out.println(org.hibernate.Version.getVersionString());
    

    我更喜欢@Shell的方式,而不是@pudaykiran的方式。事实上,在我的案例中,我发现这两种方法得到了不同的输入。 正如@pudaykiran所说,我得到:

    3.2.0最终版本

    正如@Shell所说:

    3.5.4最终版本


    我猜3.5.4最终版本使用了以前版本的
    org.hibernate.annotations.common
    。如果我错了,请更正。

    获取版本的另一种方法

    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();
        }
    }
    }
    
    System.out.println(org.hibernate.cfg.Environment.VERSION)
    

    这适用于旧版本的Hibernate。e、 g.3.3.1.GA

    您的用例到底是什么?如果需要,为什么不使用
    版本
    类呢?呃,我的Hibernate发行版没有这个类。。。它似乎是在不久的过去加入的。我遇到的用例是一个我无法理解的bug:这是因为我在Tomcat上使用嵌入式JBoss,这个发行版附带Hibernate,我不知道它的版本。有可能是一个更新的版本可以解决这个问题(我发布了一个bug报告的链接)。没有版本。我刚找到,但我不知道把那个情人放在哪里。我尝试在web.xml中作为上下文参数,但不起作用。顺便说一句,JBossEmbedded是beta3.SP10,最新版本是2009-09-09。是的,对于早期版本,即3.2.x,只有这个版本可以工作。在早期版本中,版本常量不出现在annotations.common中。