gpt4 book ai didi

java - Hibernate 不断在不同位置寻找配置文件

转载 作者:行者123 更新时间:2023-12-01 18:04:27 25 4
gpt4 key购买 nike

我使用 Eclipse IDE 构建了我的项目,并将我的 hibernate.cfg.xml 文件放在 resources 文件夹中(下面的屏幕截图):

enter image description here

<小时/>

当我尝试在 DAO 类中引用 hibernate.cfg.xml 时,就会出现问题。这是我获取 SessionFactory 的代码片段:

DAO getSessionFactory() 示例

private static SessionFactory getSessionFactory() {
String hibernatePropsFilePath = "src/main/resources/hibernate.cfg.xml";
File hibernatePropsFile = new File(hibernatePropsFilePath);

Configuration configuration = new Configuration();
configuration.configure(hibernatePropsFile);
configuration.addAnnotatedClass(MyClass.class);

StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder()
.applySettings(configuration.getProperties());
ServiceRegistry serviceRegistry = serviceRegistryBuilder.build();

return configuration.buildSessionFactory(serviceRegistry);
}

如您所见,我仍然指向项目中的“正确”位置,但是当我使用 Postman 进行测试时,出现以下错误:

HTTP Status 500 - Request processing failed; nested exception is org.hibernate.internal.util.config.ConfigurationException: Specified cfg.xml file [C:\Users\MYUSERNAME\Desktop\src\main\resources\hibernate.cfg.xml] does not exist

我的问题:为什么它不断在我的桌面中查找我的文件路径,以及如何将其更改为仅在我的项目中查找?我检查并制作了确保我的资源路径存在于我的 Web 部署程序集中(下面的屏幕截图):

enter image description here

最佳答案

src/main 是 maven 特定的项目结构,用于排列源文件。但构建后,编译后的类和资源文件将复制到 WEB-INF/classes/目录。

假设您使用的是 maven 并且您的 resources 文件夹是 source 结构的一部分,那么 XML 文件将被复制到 WEB-INF/classes/resources 文件夹。

将路径更改为String hibernatePropsFilePath = "/resources/hibernate.cfg.xml";

更新:

再次查看您的 Web 部署程序集 设置图像后,您的 main/resources 文件夹映射到 classes 目录,而不是 类/资源。因此,请按如下所示更改代码,而不使用 File

    Configuration configuration = new Configuration("hibernate.cfg.xml");
configuration.addAnnotatedClass(ClientCrossRef.class);`
configuration.configure();

更好的是,由于您的 cfg.xml 文件已经是类路径的一部分,您甚至不需要指定它。 Hibernate 将在类路径中查找它。

顺便说一句,您可以轻松构建 session 工厂,如下所示

SessionFactory sessionFactory = new Configuration().configure(
"hibernate.cfg.xml")
.buildSessionFactory();

关于java - Hibernate 不断在不同位置寻找配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37820398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com