this.getHibernateTemplate()为null

来源:互联网 发布:linux里面涉及到单词 编辑:程序博客网 时间:2024/05/01 07:48
2011年02月02日 13:32

1碰到this.getHibernateTemplate().save()不能保持在测试阶段非常容易产生的错误。

2,碰到 System.out.println(hibernateTemplate);为null的结果,现在知道原因了,

首先,hibernatetemplate为null不是错误即使可以插入值也可能获取为空。

       我犯得错误时spring+hibernate时总是自己配置session,new dao,结果出现错误java.lang.NullPointerException

        Admins admins = new Admins();
   admins.setAdminNo("aiming");
   admins.setPassword("yangguang");
   dao.addAdmin(admins);

 如果不是有dao层,只是自己生成session,事务管理,save保存,如下代码,会出现下面的报错。

Configuration cfg = new Configuration().configure();
   Session session = cfg.buildSessionFactory().openSession();
   Transaction t = session.beginTransaction();
   IAdminLogDao dao = new  AdminLogDao();
   Admins admins = new Admins();
      session.beginTransaction();
   session.save(admins);
   t.commit();

hibernate Duplicate entry '1' for key 'PRIMARY'

Could not execute JDBC batch update

如果只看报错提示,很难找到错误所在,确定一切ok,才明白spring配置文件的问题必须通过spring配置文件来生成dao再进行报错,spring配置session和事务管理器,所以不会产生上面的问题。

正常的使用spring配置文件

studentDao 对象直接 new 的话里面是没有Hibernate上下文的。
只能取得在配置文件中自动生成的实例

 ApplicationContext cxt =new FileSystemXmlApplicationContext("/WebRoot/WEB-INF/applicationContext.xml");
  @SuppressWarnings("unused")
  IAdminLogDao dao =(AdminLogDao)cxt.getBean("logadminbean");
  Admins admins = new Admins();
  admins.setAdminNo("aiming");
  admins.setPassword("yangguang");
  dao.addAdmin(admins);

 

原创粉丝点击