您的位置:首页 > 其它

this.getHibernateTemplate()为null

2011-05-12 17:16 417 查看
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);

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐