当前位置:编程学习 > JAVA >>

Spring整合Hibernate(都是Annotation方式),无法注入的问题

我在Dao层新建了一个UserDao

@Component
public class UserDao extends HibernateDaoSupport {

@Resource(name="sessionFactory")
public void setSuperSessionFactory(SessionFactory sessionFactory) {
super.setSessionFactory(sessionFactory);
}

         @Transactional
public User getUserByName(String name) {
User tmp = new User();
System.out.println("准备从数据库中取出该USER对象信息");
tmp = (User)this.getHibernateTemplate().get(User.class, 1);
return tmp;
}
}

中间层建了一个UserService

@Component
public class UserService {


private UserDao userDao;

public boolean checkUser(User user) {
User tmp = userDao.getUserByName(user.getName());
System.out.println("USER:" + user.getName() + "\t" + user.getPassword() + "\t" + user.getAge());
System.out.println("TMP :" + tmp.getName() + "\t" + tmp.getPassword() + "\t" + tmp.getAge());
tmp.setPassword("asdfasdf");
return true;
}

@Autowired
public void setUserDao(UserDao userDao) {
System.out.println("为UserService注入UserDao");
this.userDao = userDao;
}

}

启动Tomcat的时候出现无法注入userDao的错误,可是我把UserDao中getUserByName方法上面的@Transational注解去掉时,这样就可以正常注入了,这是怎么回事,求解。。。 --------------------编程问答-------------------- 传送门:http://blog.csdn.net/qq183293/article/details/7884127
,不解释 --------------------编程问答-------------------- 你加的位置不对吧!有些注解是添加在类上面的 --------------------编程问答-------------------- 自动注入sessionFactory也要加@Autowired

  @Resource(name="sessionFactory")
  @Autowired
  public void setSuperSessionFactory(SessionFactory sessionFactory) {
    super.setSessionFactory(sessionFactory);
  }
--------------------编程问答-------------------- 你就一个查询有必要用事物吗....也许是你的事物没有配好.再者,你如果用hibernatedaosuppo的话,你的userDao一般都是用作顶层dao,让其他的dao去继承userDao,
补充:Java ,  Java EE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,