【问题标题】:how to write Java Code to let JPA/hibernate know where to look for Configuration files?如何编写 Java 代码让 JPA/hibernate 知道在哪里寻找配置文件?
【发布时间】:2012-04-03 17:11:39
【问题描述】:

我是 JPA、hibernate 和 Java 本身的新手。 我以某种方式使我的代码能够访问数据库中的值。

当我提取最后一罐罐子时,我有一个 META-INF 目录,其中包含 persistence.xml。

hibernate.properties 和 hibernate.cfg.xml 也在我的 jar 中。 所以在运行时我无法对这些文件进行任何更改,因为一切都在 jar 中。

我想将persistence.xml、hibernate.cfg.xml 和hibernate.properties 移到jar 之外,并将它们放在部署环境中的某个位置。我可以这样做,但我不知道如何编写 Java 代码让 hibernate 知道在哪里查找这些文件。

例如对于 log4j,我可以使用 PropertyConfigurator.configure("/opt/somepath/log4j.properties") 并告诉 log4j log4j.properties 文件在哪里。

谁能帮助我并引导我到一些链接,在那里我可以学习在运行时为 JPA 加载配置和休眠?

我想在运行时指向不同的数据库并在不更改我的 jar jar 的情况下对其进行测试。

【问题讨论】:

    标签: java hibernate jpa configuration


    【解决方案1】:

    / 扫描查找配置文件的类路径。您可以随时添加到类路径目录/目录。

        MY_DIR1 = path/to/my/dir1
        My_DIR2 = /path/to/my/dir2
    java -cp ${CLASSPATH}:${MY_DIR1}:${MY_DIR2} ...
    

    META-INF directory 放入${MY_DIR1}(或/和${MY_DIR2})

    【讨论】:

    • 感谢您的回答。我试过这样 java -cp ${CLASSPAH}:./path/to/my/dir -jar Myjar.jar 但是网上的一些链接说 cp 不能与 -jar 一起使用。对此的任何解决方案。我已经使用 mvn clean install 和 mvn assembly:single 来构建我的项目 Myjar.jar 这是一个 jar 罐。如果我使用 -cp 选项,我将如何从命令行启动我的 jar?
    • 你是对的When you use this option, the JAR file is the source of all user classes, and other user class path settings are ignored. 所以解压你的jar文件。
    【解决方案2】:

    在ajozwik Answer的帮助下,我解决了我的问题如下->

    1. 在我的部署系统的某个位置创建了一个 /path/to/mydir 目录。
    2. 将 META-INF 和 hibernate.properties 和 hibernate.cfg.xml 移至 mydir。

      目录结构->

      我的目录

        META-INF
      
            persistence.xml
      
        hibernate.properties
      
        hibernate.cfg.xml
      
    3. 在启动可执行文件时将 mydir 添加到类路径。

    4. 而不是使用

      启动可执行文件
      java -jar Myjar.jar
      

      我使用它启动它

      java -cp Myjar.jar:/path/to/mydir MyMainClass
      

    【讨论】:

      猜你喜欢
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-29
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      相关资源
      最近更新 更多