ConfigurationException:无法在项目根文件夹中找到 cfg.xml 资源 [hibernate.cfg.xml]

ConfigurationException: Could not locate cfg.xml resource [hibernate.cfg.xml] in project root folder

我在 项目根文件夹 中有 hibernate.cfg.xml 文件。

如果我 运行 一个应用程序包含:

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

它在 configure() 方法中崩溃并显示以下消息:

Could not locate cfg.xml resource [hibernate.cfg.xml]

输出:

Jun 17, 2016 12:04:59 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.2.0.Final}
Jun 17, 2016 12:04:59 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000205: Loaded properties from resource hibernate.properties: {hibernate.connection.driver_class=org.h2.Driver, hibernate.service.allow_crawling=false, hibernate.max_fetch_depth=5, hibernate.dialect=org.hibernate.dialect.H2Dialect, hibernate.format_sql=true, hibernate.generate_statistics=true, hibernate.connection.username=sa, hibernate.connection.url=jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1;LOCK_TIMEOUT=10000, hibernate.bytecode.use_reflection_optimizer=false, hibernate.connection.password=****, hibernate.connection.pool_size=5}
Jun 17, 2016 12:04:59 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
org.hibernate.internal.util.config.ConfigurationException: Could not locate cfg.xml resource [hibernate.cfg.xml]
    at org.hibernate.boot.cfgxml.internal.ConfigLoader.loadConfigXmlResource(ConfigLoader.java:53)
    at org.hibernate.boot.registry.StandardServiceRegistryBuilder.configure(StandardServiceRegistryBuilder.java:163)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:258)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:244)
    at o.k.j.HibernateTest.main(HibernateTest.java:22)

hibernate.cfg.xml 文件应移至 src 文件夹。

如果您使用 Maven 构建项目,请将 'hibernate.cfg.xml' 文件放在 'src/main/resources'

如果您使用 Maven 作为构建工具,则将 hibernate.cfg.xml 放在 resources 文件夹下。

使应用程序引用 Hibernate 配置文件的步骤。

右键单击 resources 文件夹和 select Mark Directory As 选项并单击 Resources Root .

这些步骤在 InteliJ IDEA Ultimate 14 中对我有用。

使用forward/放cfg文件没有forward/不行

我也遇到了类似的问题,我注意到我的休眠配置文件 "hibernate.cfg.xml" 不在所需的路径上。因此我将 hibernate.cfg.xml 移动到 src 文件夹并解决了问题。

必须作为持久化类型添加到配置文件中。

项目设置 > Facets > 添加 Hibernate > 配置路径

并且您可以在 View > Tools Windows > Persistence[=25 中看到它的配置=]

GL

hibernate.cfg.xml 文件移动到 src/main/resources 解决了我的问题

如果你使用的是eclipse那么 它必须添加到配置中作为 src\main\java\hibernate.cfg.xml

以下解决方案可能适用于 Maven、Intellij

  1. 将“hibernate.cfg.xml”移动到资源文件夹 -> 重建项目

  2. right-click 在资源文件夹上 -> 然后取消标记资源根 -> 再次将其标记为资源根