springMVC+hibernate 事务问题

查看余e 2014-10-15 08:27:48
问题是这样的,当一个工作周期比较长的事务正在执行时,来了一个周期比较短的事务(这两个事务时操作同一个数据表的)。周期比较短的事务会正常执行提交,但是周期比较长的事务就会被会滚掉, 项目是工作时的项目不太好重现。 想问一下大神们这样的问题怎么解决,或者是说有没有什么方法能让操作同一个数据表的两个事务顺序执行而不被抢占
...全文
297 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
loveunittesting 2014-10-27
  • 打赏
  • 举报
回复
spring的事务控制就死路一条!除非肯定不不出现访问同一表的并发。
zqjer2 2014-10-26
  • 打赏
  • 举报
回复
从事务角度来说,正在执行的事务应该避免被打扰,而你的事务处理是让正在执行的事务回滚,应该是属于程序控制数据库进行的,按照5楼的改一下spring里面事务级配置。 程序最好不要设置过长的事务,如果非得有过长事务,就交给存储过程来做。
Mr_JieLQ 2014-10-25
  • 打赏
  • 举报
回复
spring事物的隔离级别可以帮到你,若果项目不适用spring
PROPAGATION_REQUIRES_NEW ,从字面即可知道,new,每次都要一个新事务,该传播级别的特点是,每次都会新建一个事务,并且同时将上下文中的事务挂起,执行当前新建事务完成以后,上下文事务恢复再执行。
zy_think123 2014-10-22
  • 打赏
  • 举报
回复
就加锁呀!Lock,你去搜索jdk就好了,或者是百度一下就OK了
查看余e 2014-10-21
  • 打赏
  • 举报
回复
还是不会弄啊 求大神们指教啊
查看余e 2014-10-16
  • 打赏
  • 举报
回复
引用 1 楼 zy353003874 的回复:
我很想知道:为什么会被回滚? 可不可以将这两个事物变成一个呢? 最后我们再来谈谈这个问题:因为操作的是同一个数据库表,所以我猜想可能是由于操作了某一个脏数据而导致回滚的,那么可以对你需要的那一行进行加锁,但是呢最好不要使用数据库的锁,各个数据库不一样,你可以去看看JAVA中的锁机制,很简单的
两个事务是没什么特别关系的,只是碰巧同时操作时会出问题。你说的方法我回去试试,如果不行的话还要请大神指教啊
zy_think123 2014-10-16
  • 打赏
  • 举报
回复
我很想知道:为什么会被回滚? 可不可以将这两个事物变成一个呢? 最后我们再来谈谈这个问题:因为操作的是同一个数据库表,所以我猜想可能是由于操作了某一个脏数据而导致回滚的,那么可以对你需要的那一行进行加锁,但是呢最好不要使用数据库的锁,各个数据库不一样,你可以去看看JAVA中的锁机制,很简单的

67,513

社区成员

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

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