RoyalJsp
RoyalJsp
2009-04-09 12:21

SSH2的事务并发怎么控制?

  • spring

小弟对SSH掌握的不好,还在摸索中使用
我以前用hibernate3+struts2做项目,事务的控制由hibernate3来完成,比如用hibernate的乐观锁(version控制)

现在改用spring2.5+hibernate3+struts2, 我看了下spring2.5的reference,是不是事务控制只需要有在spring里申明,不用使用hibernate3的锁机制就可以自己控制并发呢. Spring2.5可以自己搞定事务并发而我们自己只需要去声明事务就可以吗?

谢谢, 希望哪位帮个忙!
[b]问题补充:[/b]
魔力猫咪:对于你的回答我还是比较迷糊耶.
1.如果用Hiberante3.2, 比如Hiberante3.2, 是不是并发控制是自动的?(我看reference上说得"自动版本化").
2.对于魔力猫咪的回答.是不是可以这样理解:spring2在一遇到异常就会自动回滚,就相当于Hiberante的version控制?
3.如果用SSH2框架,不设定事务隔离层级,spring2还是会自己处理并发?

呵呵,刚在摸索阶段,希望大家指点.感激....

[b]问题补充:[/b]
魔力猫咪: 谢谢你中肯的回答>
我现在想要知道的是: 假如我不用spring2, 直接用hibernate3.2,怎么控制事务并发? 乐观锁是没有真正作到并发,这种情况下我的迷惑是:按照hibernate3.2的工作手册说得,有自动version控制,所以我门不需要在POJO里定义version字段,然后用 去映射,对吗?
如果我用到了spring2.按照你的意思就说,sping2只是申明事务而已,并做不到控制并发,实际上还是得由hibernate3.2来控制并发,对吗?那么假如不用hibernate3,spring2本身能控制事务并发吗?
希望给我详细点的回答, 非常盼望.
[b]问题补充:[/b]
老兄,非常感激你的指点,不过我觉得你把我看高了,我其实就是想知道具体如果控制事务并发,这些概念上的东西我根本无法理解,我就是想知道,所谓的乐观锁,是不是一定要这样做:
1.在pojo定义version字段,数据库定义version字段,然后在映射文件?(这好像是hibernate2的做法)
2.到了hibernate3.2后,是不是不需要像1那样做了?
3.你提到的"乐观锁的所谓自动,是只要你定义了乐观锁,Hibernate就会每次在数据变更的时候给你自动增加",如何定义?
4.是不是可以这样理解:不管你用不用spring,只要你用hibernate的乐观锁来控制并发,是不是就得按照1或者3那样做?

请您给我一个具体的做法,抽象的概念实在是理解不了,误见笑哈...

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

4条回答

为你推荐