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

报错:Exceptioninthread"main"org.hibernate.HibernateException:NoHibernateSessionboundtothread,andconfigurationdoesnotallowcreationofnon-transactionalonehere
atorg.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代码:
@Component
publicclassInstaller{
@Resource
privateSessionFactorysessionFactory;
@Transactional
privatevoidinstall(){
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配置文件:
开心每一天1111
浏览 291回答 2
2回答

慕丝7291255

报错:Exceptioninthread"main"org.hibernate.HibernateException:NoHibernateSessionboundtothread,andconfigurationdoesnotallowcreationofnon-transactionalonehere报错很明显了,然后你的评论问题为什么opensession可以?推荐你2个帖子看一下SSH中使用getCurrentSession()获得sessiongetCurrentSession与openSession()的区别,虽然写的早了点和你用的配置不太相同,但hibernate的实现是一样的。当然如果还是不太明白的话,那就问问给你教材的人吧。。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript