我遇到了当前的问题:我的公司有一个使用EclipseLink的RCP应用程序,我们使用Views
和Editors
,而Editors
有一个名为{{1的方法如果当前对象以任何方式被更改,则指向它。我的isDirty()
做了类似的事情
isDirty()
这是怎么回事:我打开一个if(model != null) // model is the current object beign edited
return EntityManagerHelper.contains(model) && getRepository().isDirty();
return false;
(比如ProductEditor),更改一些属性,然后我打开另一个Editor
(比如ClientEditor),然后这个第二个编辑器打开就像脏了一样(就像它一样)已经改变了)。然后,如果我编辑客户端并保存,则EclipseLink将客户端和产品保存在同一事务上。似乎EclipseLink正在提交整个会话或类似的东西
我正在阅读this
工作单元确保客户端在单独的对象事务空间中编辑对象。此功能允许客户端并行执行对象事务。提交事务时,工作单元在数据库中进行任何所需的更改,然后将更改合并到共享的EclipseLink会话高速缓存中。然后,修改后的对象可供所有其他用户使用。
Editor
可以改变这种行为吗?如果是这样,我该如何实现这种模式呢?
我做得够清楚了吗?如果有人需要一些代码或更多信息,请告诉我