在Entity Bean之外修改了表数据的同步问题

在项目中,我们遇到这样一个问题,
一个entiry bean对应一个表,
在网站上通过jsp调用ejb来修改表中的数据,
但是出来网站之外,还有一个用VC写的程序,也可以修改该表中的数据,
这样问题就出来了,
在VC程序改了表中的数据后,再通过ejb查看时,
ejb会先执行update语句,覆盖掉VC程序所作的修改。

请教各位,有没有办法使得entity bean不用先覆盖表中的数据,
而是先依据表中的数据来刷新entity bean自己的状态呢?

谢谢。

试试ejb design pattern里的version模式

这个本来是用来做长事务的控制的。我想应该也适用于你这种情况。实现方式之一就是维护一个字段做记录的版本。提交修改以前验证一下这个字段的值是否“dirty"。

谢谢你的回复。
但是加一个version字段觉得不大爽,像CMP好像就比较麻烦吧?
大家有没有什么简单有效的方法啊?

这是不是EJB的一个"死穴"啊?

这不是EJB的问题,是你数据库的ACID事务设置,你可以通过设置积极锁或消极锁来试试看