这里的高手多,请教一个 hibernate并发控制的问题
最近在用ssh2 写一个例子,要考虑并发性问题. 我想 更新数据的时候,
先是在画面得到 这条数据的信息,然后画面上输入新的内容
然后,点提交后,
Action 里 先是通过id去 查询到持久化的对象
然后 再 设置更新的内容,
最后 save这个 持久化对象 目前控制并发性的操作是 :在画面中用一个隐藏域 保存着该数据的更新时间,
然后 点提交的时候就 拿隐藏域的时间 和 即将更新的对象里的时间作比较
如果一致说明 ,没有被其他人更新过,就顺利更新
否则就 提示 数据已经被更新. 我这种做法是 乐观锁的一种实现,我也知道 hibernate 有个 version的概念
但是我觉得 version不适合我这种做法,因为,我更新前 又拿id去查询了一遍数据库的数据
这样的话,人家更新过后,也不能判断出来被更新了,
这个时候更新,仍然会覆盖 以前的更新 我这个的认为,不知道大家认同不,或者有没有更好的建议,
对hibernate不太熟悉,
希望高手能解惑,谢谢!
最近在用ssh2 写一个例子,要考虑并发性问题. 我想 更新数据的时候,
先是在画面得到 这条数据的信息,然后画面上输入新的内容
然后,点提交后,
Action 里 先是通过id去 查询到持久化的对象
然后 再 设置更新的内容,
最后 save这个 持久化对象 目前控制并发性的操作是 :在画面中用一个隐藏域 保存着该数据的更新时间,
然后 点提交的时候就 拿隐藏域的时间 和 即将更新的对象里的时间作比较
如果一致说明 ,没有被其他人更新过,就顺利更新
否则就 提示 数据已经被更新. 我这种做法是 乐观锁的一种实现,我也知道 hibernate 有个 version的概念
但是我觉得 version不适合我这种做法,因为,我更新前 又拿id去查询了一遍数据库的数据
这样的话,人家更新过后,也不能判断出来被更新了,
这个时候更新,仍然会覆盖 以前的更新 我这个的认为,不知道大家认同不,或者有没有更好的建议,
对hibernate不太熟悉,
希望高手能解惑,谢谢!
解决方案 »
- 解释下Servlet中的概念
- oracle关于 or, null 以及 <>使用的问题
- 求大神啦····
- 我公司想做个网站的系统,公司想少花钱,还不想养着程序员,做完项目就走人,大家帮我想想办法,该怎么做,现在公司就我一个程序员,另我是做java的。
- JSF分页提交问题
- JSP连接数据库的奇怪问题
- 这是什么错误?
- 如何通过 Field 或 Method 对任何一个给定的类,进行其某个属性的赋值?并且不仅该属性是 private 还是 public !
- 外资企业诚招英才 网络前端工程师Senior HTML/CSS Designer/Engineer;网络质检工程师Lead QA Manager/Engineer;网络开发工程师Web Software Engineer (All levels)
- 超难的字符串处理问题
- MyEclipse的问题.
- 邮件发送的问题
A、B2个人要同时对这个数据修改,假设这个数据的version是16.A读取这个数据,得到version(16),此时B也读取数据得到version(16).
A修改这个数据,version变为(17),B试图修改的时候,发现version不对,就会保存出错的吧。