为了账号安全,请及时绑定邮箱和手机立即绑定

Sping管理hibernate时的事务问题(No Hibernate Session bound to thread)

Sping管理hibernate时的事务问题(No Hibernate Session bound to thread)

开心每一天1111 2019-04-21 20:19:55
报错:Exceptioninthread"main"org.hibernate.HibernateException:NoHibernateSessionboundtothread,andconfigurationdoesnotallowcreationofnon-transactionalonehereatorg.springframework.orm.hibernate3.SpringSessionContext.currentSession(SpringSessionContext.java:63)atorg.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:685)atcn.itcast.oa.util.Installer.install(Installer.java:24)atcn.itcast.oa.util.Installer.main(Installer.java:88)报错代码片段:Java代码:@ComponentpublicclassInstaller{@ResourceprivateSessionFactorysessionFactory;@Transactionalprivatevoidinstall(){Sessionsession=sessionFactory.getCurrentSession();//保存超级管理员账户Useruser=newUser();user.setLoginName("admin");user.setName("超级管理员");user.setPassword(DigestUtils.md5Hex("admin"));session.save(user);//保存权限数据Privilegemenu,menu1,menu2,menu3,menu4,menu5;//=====menu=newPrivilege("系统管理",null,null);menu1=newPrivilege("岗位管理","/role_list",menu);menu2=newPrivilege("部门管理","/department_list",menu);menu3=newPrivilege("用户管理","/user_list",menu);session.save(menu);session.save(menu1);session.save(menu2);session.save(menu3);}publicstaticvoidmain(String[]args){ApplicationContextac=newClassPathXmlApplicationContext("applicationContext.xml");Installerinstaller=(Installer)ac.getBean("installer");installer.install();}}Spring配置文件:
查看完整描述

2 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

报错:Exceptioninthread"main"org.hibernate.HibernateException:NoHibernateSessionboundtothread,andconfigurationdoesnotallowcreationofnon-transactionalonehere
报错很明显了,然后你的评论问题为什么opensession可以?
推荐你2个帖子看一下SSH中使用getCurrentSession()获得session
getCurrentSession与openSession()的区别,虽然写的早了点和你用的配置不太相同,但hibernate的实现是一样的。当然如果还是不太明白的话,那就问问给你教材的人吧。。
                            
查看完整回答
反对 回复 2019-04-21
  • 2 回答
  • 0 关注
  • 290 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信