spring+hibernate save() 无效
今天整合Spring 和 hibernate 时候 save() 无报错 但是没有存入到数据库 花了两个小时 找答案 (本人小白);现整理问题和解决办法如下,望能给有同样问题的学友一点思路:
1、@Transactional 注解失效
2、save()方法无报错 但未存入数据库 注:我的实体类的 配置文件 里面id生成规则是 uuid;刚开始上网说是 因为事务未开启 所以执行成功 但是没有保存到数据库,我测试了手动开启事务 然后 保存 然后成功了 这是我意识到是事务的问题 开始有了大的方向 然后我解决这个问题就是在和配置事务较真。。
解决办法
- 第一个问题:
web.xml 添加下列代码 (服务于事务的使用)
在整合Spring和Hibernate的配置文件里面(我的文件的名字是 applicationContext.xml)添加下列内容:
然后在对应的service类上面 注解即可。 - 正常来说,上面的配置应该就可以了 但是我这里还是不行 后来 百度了好多 找到了一种解释 : 如果主键生成策略是uuid等不是由数据库生成的,则session.save()时并不会发出SQL语句,只有flush时才会发出SQL语句,但如果主键生成策略是native由数据库生成的,则session.save的同时就发出SQL语句。 然后 我在将保存的代码修改如下 :
结果可以正常保存到数据库了 。。写的 有点简略 ,有异议的朋友可以联系我讨论。0.o