我在 Jboss AS 7.1.1 上部署了一个 EAR 文件。
在其中一个 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
?
更新:
我发现我使用了错误的方法:
configuration.addResource("/META-INF/persistence.xml");
应该:
configuration.configure("/META-INF/persistence.xml");
但是现在我有一个不同的问题,因为 Jboss persistence.xml 与 hibernate.cfg.xml 的结构不同,所以我得到了无效的配置异常。
知道什么是正确的课程吗?