日期:2014-05-19  浏览次数:20661 次

hibernate+spring getHibernateTemplate null请教~~~为什么
搞了一上午没有结果 来这里请教一下高人 在A类中调用B类中的find查询方法 B类继承了HibernateDaoSupport

先贴代码 
applicationContext.xml

<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="file:src/hibernate.cfg.xml">
</property>
</bean>
<bean id="B" class="com.B">
  <property name="sessionFactory">
  <ref bean="sessionFactory" />
  </property>
  </bean>
接着就是B.JAVA类
public class B extends HibernateDaoSupport{
public List findList(String hql){
  getHibernateTemplate().find(hql);
}
 
}

最后是A.JAVA
public class A{

  public void test(){
  B b = new B();
  b.findList("select * form table");
  }
}

然后就报NULL 我DEBUG了一下 发现B类中的getHibernateTemplate()本身就是NULL 网上找了一些例子 都是这么写的 可是我的却报NULL 怀疑是由于在A类中new了B导致的 请高手分析一下 到底哪里有问题 
注:spring2.+hibernate3.1 分开管理没有全部交给spring 


------解决方案--------------------
你的B类不能自己new出来 ,要用spring给你创建的
Java code

   B b = (B) new ClassPathXmlApplicationContext("applicationContext.xml").getBean("B");