错误:java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session;
原因:Hibernate4和Hibernate3不一样的地方
1.不能在使用HibernateTemplate,Spring已经不建议使用了,应该将SessionFactory直接注入到DAO,而不再是
HibernateTemplate
修改相应的配置文件:
applicationContext.xml
<context:annotation-config />
<!-- session Factory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
</bean>
<bean id="scDao" class="dao.SCDao">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
Dao中注入:
@Resource(name="sessionFactory")
private SessionFactory sessionFactory ;
public void saveStu(Stu stu){
Session session = sessionFactory.openSession();
session.save(stu);
session.close();
session.close();
}
原先
hibernate3的写法:
public void delEntity(Object obj){
try {
getHibernateTemplate().delete(obj);
} catch (DataAccessException e) {
e.printStackTrace();
}
}