我是 Spring Hibernate 的新手,所以我遇到了由在静态块中初始化的函数引起的这个问题。
这是我的 DAO 课程:
private static HibernateTemplate hibernateTemplate;
public void setSessionFactory(SessionFactory sessionFactory) {
hibernateTemplate = new HibernateTemplate(sessionFactory);
}
static{
loadAllProvince();
}
public static void loadAllProvince () {
List regionList = hibernateTemplate.find("FROM regions");
if (regionList.size() > 0 ) {
for (int i=0; i<regionList.size(); i++) {
Object[] obj = (Object[]) regionList.get(i) ;
mapRegion.put(obj[1].toString(), obj[0].toString());
}
}
}
这是我的 applicationContext.xml 中的 bean 配置:
<bean id="regionDAOBean" class="com.dao.RegionDAO">
<property name="sessionFactory" ref="sessionFactoryBean"/>
</bean>
当我运行我的应用程序时,异常说:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'regionDAOBean' defined in class path resource [applicationContext.xml]:
Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError
在我初始化静态块中的函数之前,它一直在工作,那么我应该怎么做才能初始化静态块中的函数?