1

我正在使用 hibernate 开发一个独立的应用程序,为我的项目使用以下结构: 在此处输入图像描述

这就是我告诉 hibernate(是的,我正在与 Hibernate 聊天)在哪里可以找到 hibernate.cfg.xml 文件的方式:

File hibernateConfigurationFile = new File("..\\resources\\hibernate.cfg.xml");
...
Configuration().configure(hibernateConfigurationFile).buildSessionFactory();

这就是我告诉 hibernate 在哪里可以找到 Event.hbm.xml 文件的方式:

<mapping resource="../resources/test/Event.hbm.xml"/>

我也试过:

<mapping resource="test/Event.hbm.xml"/>

但是当我编译它时,我有以下错误:

初始 SessionFactory 创建 failed.org.hibernate.MappingNotFoundException: resource: test/Event.hbm.xml not found

我理解这是因为我在 hibernate.cfg.xml 文件中指出了错误的映射文件路径。所以我移动了我的 Event.hbm.xml 文件,我的项目结构现在是:在此处输入图像描述

一切正常。

我的问题是我想将 Event.hbm.xml 保留在 resource\test 目录中。如何在我的 hibernate.cfg.xml 文件中指出这一点?我尝试了相对路径,但它不起作用。我阅读了休眠文档,但一无所获。有什么建议吗?

4

2 回答 2

2

您可以尝试以编程方式构建休眠配置,并且可以说

SessionFactory sf = new Configuration()
    .addFile("yourpath/Event.hbm.xml")

而不是在hibernate.cfg.xml

这个方法

于 2013-04-15T10:44:37.143 回答
0

我面临同样的问题

我用这个

<mapping file=".\hibernate\groupResult.hbm.xml" />

表示映射中有属性文件

.\hibernate\groupResult.hbm.xml

将在 groupResult.hbm.xml 的 hibernate 文件夹中的项目文件夹中

希望对你有帮助!

干杯!

于 2016-02-29T06:33:14.937 回答