hibernate4没法保存数据

初次使用hibernate4,使用getCurrentSession保存对象时没法将对象的数据保存进数据库,通过一番试验后,发现原来要配置事务才能保存数据。 web


保存数据失败缘由: spring


没有配置事务,经过手动写一个事务,才能提交数据。手动写一个事务,用getCurrentSession也没法保存数据,只能使用openSession才能保存数据。 sql


解决办法: 数据库


配置spring声明式事务,不建议使用注解来配置事务,注解配置事务,只在xml配置切面事务失败时,才用来测试。通常xml配置切面事务失败缘由,找不到包,还有切面路径找不到类 网络



说明: session


一、要注意,在web.xml配置openSessionInViewFilter用来启动hibernate,在通过url请求后,这里就会开启hibernate的session,若是不配置,就没法使用getCurrentSession了,详细配置,请看下面web.xml的配置, app


二、下面的代码是用AOP配置的事务,注解方式的事务我已经注释掉了,请看UserService里面注释掉的事务注解 maven


三、dao和service我都是用注解注入的 测试


四、下面的几个xml文件除了applicationContext-security.xml这个配置文件外,其它的几个xml文件都是参照easyUI教程中的孙宇老师的视频配置的,有兴趣的朋友可下载下来看看,比较适合刚入门的朋友 url


五、项目是用maven搭建的,比较方便的,不用再去找jar包,只要在pom.xml文件配置,在链接网络的前提下就能够自动下载jar包了,能够看看下面的pom.xml文件中,我下载了那些jar包


六、由于我在spring-hibernate.xml文件配置了propkey=hibernate.show_sql${hibernate.show_sql}/prop,这个为true时,若是执行了sql语句,就会在控制台打印出sql语句的,我在测试时,若是数据没保存进数据库,控制台是不会打印出sql语句的,成功保存数据后,打印出的信息:

相关文章
相关标签/搜索