Hibernate session 事务提交回滚问题问题! 请各位大侠指导!

So_So 2010-04-15 02:55:33
问题场景:

我这里有5个对象,第一次开发的时候是通过页面将各个对象入库的,每个对象入库前获得hibernate的session 开启事务
如果入库过程中无异常则提交事务 并将事务标志复位!(这里借助ThreadLocal 这个类来实现的).这个本身没问题,但是现在需求要求我们 通过脚本将多个对象一起入库.那我加个更大的事务 就出问题了...因为我们调用的还是以前入库的那套接口.意思是 我们现在 没个小对象有个事务, 然后总的来需要个事务 但是一加这个事务就异常了.我的理解是 在每个对象加完后 将事务的标志复位. 然后在最后事务提交的时候 我们得到的事务是一个没开启的. 那何来的 commit 呢?
请各位大侠指导! 我们在不改变原来架构的问题 又能满足这样的需求 该怎么办?
...全文
355 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
SambaGao 2010-04-16
  • 打赏
  • 举报
回复

hibernate + ehcache

如果还没有处理。你可以到 www.jdon.com 去问 板桥大师
SambaGao 2010-04-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 li445970924 的回复:]

嵌套事务
[/Quote]

不推荐使用。。。由其是hibernate 很麻烦的。

如果事务很大的话考虑使用缓存吧。。

So_So 2010-04-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lxd520123 的回复:]
对你的基类写一个代理,然后事务操作在你的代理里面完成
[/Quote]

代理已经有了....不过这个代理是单例的 也就是说 目前我只有一个实例 一个事务 一但对象群里面的 小对象入库后 事务 标识就 复位了..所以 目前我想到的解决办法是 我搞2个实例出来 一个是原来接口的 一个用来处理 这个大的事务....

现在我们就是在嵌套事务啊.. 问题是嵌套的时候我们用的是同一个事务 问题所在啊~!!!!


解决完了 回来结贴!
bunrise 2010-04-16
  • 打赏
  • 举报
回复
对你的基类写一个代理,然后事务操作在你的代理里面完成
li445970924 2010-04-16
  • 打赏
  • 举报
回复
嵌套事务
So_So 2010-04-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 uk445737547 的回复:]
用分布式事务。
[/Quote]

这个还请明细说下.谢谢!主要是不要改变原来架构!


目前已经快要叫版本了 所以 抛弃接口是不可行的.

我们自己有一个基类用来做事务的 开启和提交 但是这个不是问题所在啊

所在的是我们 基类实例只有一个!这个问题很麻烦啊 又要调用原来接口 又想达到需求.这个需要大侠们的指点啊...如果我再new 个基类实例 来控制我的这个大的事务 结果会不会想得到的呢..会对以前的接口有影响么? 请大侠们指点!
yy_dan 2010-04-16
  • 打赏
  • 举报
回复
LZ有用到Spring 吗??如果用到了就用spring的AOP来控制事务,这样很容易解决的
TzSword 2010-04-16
  • 打赏
  • 举报
回复
帮顶一下。。。不改变原来设计很难完成。。
colin_pxx 2010-04-16
  • 打赏
  • 举报
回复
很高深 我学习
anxior35374 2010-04-15
  • 打赏
  • 举报
回复
用了SPRING了么?配置下事务传播性就行了。
没用的话,就自己写个AOP。。。调用开启事务和提交。。。
uk445737547 2010-04-15
  • 打赏
  • 举报
回复
用分布式事务。
zidasine 2010-04-15
  • 打赏
  • 举报
回复
每个对象的保存都有各自的事物处理

想用一个事务控制?

抛弃原来的接口吧

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧