2012-08-02 63 views
0

我在Jboss AS 7.1.1上部署了EAR文件。在jboss 7上找不到Hibernate.cfg.xml

在其中一个EJB项目中,我们在META-INF文件夹下有一个persistence.xml文件。我需要做一个数据库中的批量更新,所以我写了这个代码,得到一个会话工厂:

private SessionFactory buildSessionFactory() throws Exception { 
     SessionFactory factory = null; 
     try{ 
     Configuration configuration = new Configuration(); 
     configuration.addResource("/META-INF/persistence.xml"); 
     configuration.configure().setProperty("hibernate.show_sql", "false"); ---> **throws error** 
     ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry(); 
     factory = configuration.buildSessionFactory(serviceRegistry); 
     } 
     catch (Throwable t){ 
      throw new Exception(t); 
     } 
     return factory; 
    } 

的问题是我得到:org.hibernate.HibernateException: /hibernate.cfg.xml not found

我该如何告诉休眠使用persistence.xml而不是hibernate.cfg.xml

UPDATE:

我发现我使用了错误的方法:

configuration.addResource("/META-INF/persistence.xml"); 

应该是:

configuration.configure("/META-INF/persistence.xml"); 

但现在我有一个不同的问题,因为Jboss的持久性.xml与hibernate.cfg.xml没有相同的结构,所以我得到无效的配置异常。

任何想法什么是正确的路线在这里?

+0

取代更新,你可以回答你的问题,甚至接受它。所以将来它可能对其他人有帮助。 – 2012-08-02 10:43:59

回答

0

您可以通过JPA使用Hibernate,但是您必须重写一些代码 - 将SessionFactory更改为EntityManager等。另一种方法是编写hibernate.cfg.xml配置,并使用本机Hibernate而不触及你的代码。

相关问题