我正在使用带有Hibernate3.5的JSF2.1开发一个Web应用程序。正如我观察到的那样,在我发出第一个请求后,只有所有.hbm文件正在加载,但我想在部署项目时加载所有.hbm文件。 我怎样才能实现这一点,我的意思是我需要添加哪些配置,以便在部署时加载? 这是我的.cfg文件:
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="factory">
<property name="connection.datasource">java:/PAEDIATRICS</property>
</session-factory>
</hibernate-configuration>
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
// Create the SessionFactory from standard (hibernate.cfg.xml)
Configuration configuration = new Configuration();
configuration.configure("hibernate/entitymapping/general/hibernate.cfg.xml");
System.out.println("Hibernate Configuration loaded");
sessionFactory = configuration.buildSessionFactory();
} catch (Throwable ex) {
// Log the exception.
System.err.println("Initial SessionFactory creation failed." + ex);
ex.printStackTrace();
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
答案 0 :(得分:0)
SessionFactory
仅在您第一次执行HibernateUtil.getSessionFactory()
时创建,因为static
初始化。
在服务器启动时进行配置的最简单方法是使用ServletContextListener
。
public class ApplicationInitializer implements ServletContextListener {
public void contextInitialized(ServletContextEvent event) {
HibernateUtil.getSessionFactory();
}
}
您需要将ApplicationInitializer
添加到web.xml
。