Wednesday, 18 September 2013

How to use static block to initialize spring hibernate query function

How to use static block to initialize spring hibernate query function

I am new to Spring Hibernate, so I am having this problem that cause by a
function that initialize in a static block.
This is my DAO class:
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());
}
}
}
This is the bean configuration in my applicationContext.xml:
<bean id="regionDAOBean" class="com.dao.RegionDAO">
<property name="sessionFactory" ref="sessionFactoryBean"/>
</bean>
When I run my application, the exception say:
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
It was working find until I initialize the function in the static block,
so what should I do in order to initialize the function in static block?

No comments:

Post a Comment