Hibernate映射资源位于单独的jar中

时间:2011-03-22 13:05:54

标签: hibernate mapping entity hibernate-mapping hibernate.cfg.xml

我有单独的jar文件,包含hibernate实体映射和直接映射。我的Hibernate confg(cgf.xml)放在另一个jar文件中。结果我捕获异常“资源:com / iceleads / data / Test.hbm.xml未找到”。

示例:

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"/>

mainUsage.jar类路径中的entities.jar

请建议我如何配置hibernate.cfg.xml以使用单独的jar与实体。

非常感谢!

阿尔乔姆

2 个答案:

答案 0 :(得分:1)

在创建新配置时使用方法addJar()

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

答案 1 :(得分:0)

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

这将达到目的。