日期:2014-05-20  浏览次数:20979 次

新手求解getCurrentSession() 获取不到怎么回事?
空指针异常

情况class 1中
@Resource private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
在这里用sessionFactory 就没问题

然后另外一个文件 class 2
@Resource private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
然后再用这个sessionFactory 就不行啦 sessionFactory.getCurrentSession()时 就报空指针异常啦

恩么回事 sessionfactory只能有一个吗?? 我刚学

------解决方案--------------------
哦哦。你用的是spring注入sessionFactory啊。我还以为你是直接配置hibernate.cfg.xml
那你spring里sessionFactory的相关配置贴一下
------解决方案--------------------
java.lang.NullPointerException
at csh.Junit.test1.adda(test1.java:68)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
……
==============================================================
是说sessionFactroy是Null,还是getCurrentSession()返回的Null

如果sessionFactory是Null,那可能是transactionManager没有正常构造出来,从transactionManager的配置文件来看没啥问题,Spring帮助我们生成了一个单例的transactionManager对象,通过对象名称("transactionManager")从ApplicationContext 里面的getBean方法获取。