私は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
静的ブロックで関数を初期化するまでは find が機能していたので、静的ブロックで関数を初期化するにはどうすればよいですか?