4

我有单独的jar文件包含了hibernate的实体映射和直接映射。我的Hibernate confg(cgf.xml)放在另一个jar文件中。结果我发现异常“resource:com/iceleads/data/Test.hbm.xml not found”。休眠映射资源定位在单独的jar中

例子:

entities.jar 
    com.package.entity.TestEntity.java 
    com.package.entity.TestEnity.hbm.xml 

mainUsage.jar 
    com.package.main.MainClass.java - there are I get session factory 
     SessionFactory factory = HibernateUtil.getSessionFactory(); 

    com.package.main.hibernate.cfg.xml 

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

    in hibernate.cfg.xml 
     <mapping resource="com/package/entity/TestEntity/Test.hbm.xml"/> 

entities.jar在mainUsage.jar classpath中

请建议我我如何可以配置hibernate.cfg.xml中使用单独的罐子实体。

非常感谢!

阿尔乔姆

+0

你的例子不正确。 entities.jar包含一个名为'TestEntity.hbm.xml'的文件,而hibernate.cfg.xml映射一个名为'Test.hbm.xml'的文件......巧合? – yair 2012-11-18 22:15:49

回答

1

使用方法创建一个新的配置时addJar()

sessionFactory = new Configuration().configure("hibernate.cfg.xml") 
    .addJar(new File("/path/to/jar")).buildSessionFactory(); 
0

将映射文件的路径包含到映射资源中。例如,使用<mapping resource="com/example/test/test.hbm.xml"/>,并且test.hbm.xml位于jar文件内的包com.example.test中。

这会达到目的。