我正在使用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文件中指明?我尝试了相对路径,但它不起作用。我读了hibernate文档,但一无所获。有什么建议吗?
答案 0 :(得分:2)
您可以尝试programmatic way of building hibernate configuration并可以说
SessionFactory sf = new Configuration()
.addFile("yourpath/Event.hbm.xml")
而不是在hibernate.cfg.xml
请参阅this method
答案 1 :(得分:0)
我遇到了同样的问题
我用过这个
<mapping file=".\hibernate\groupResult.hbm.xml" />
表示映射
中有属性文件\冬眠\ groupResult.hbm.xml
将位于该groupResult.hbm.xml
中该hibernate文件夹的项目文件夹中希望这会对你有帮助!
干杯!