修改BaseDao
package com.chb.spring_hibernate.dao;
import javax.annotation.Resource;
import org.hibernate.Session;
import org.springframework.orm.hibernate5.HibernateTemplate;
public class BaseDao {
private HibernateTemplate hibernateTemplate;
@Resource
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
protected Session getSession() {
return hibernateTemplate.getSessionFactory().getCurrentSession();
}
}
测试添加
@org.junit.Test
public void testHibernateAdd(){
ApplicationContext context = new ClassPathXmlApplicationContext("SpringBean.xml");
IGroupDao groupDao = (IGroupDao)context.getBean("groupHibernateDao");
IUserDao userDao = (IUserDao) context.getBean("userHibernateDao");
Group group = new Group();
group.setGroupName("信息系");
groupDao.addGroup(group);
System.out.println(group);
User user = new User("chb", "123456", "chbtmp");
userDao.add(user, group.getId());
}
测试报错:org.springframework.orm.hibernate5.HibernateTemplate
不可用,没有注入HibernateTemplate
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'groupHibernateDao': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.orm.hibernate5.HibernateTemplate' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.orm.hibernate5.HibernateTemplate' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
注入HibernateTemplate, 在SpringBean.xml中添加,HibernateTemplate, 并设置SessionFactory.
插入成功