首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >行在呈现时被另一个事务更新或删除。

行在呈现时被另一个事务更新或删除。
EN

Stack Overflow用户
提问于 2014-03-07 10:02:42
回答 1查看 67关注 0票数 0

我有一个像两个管理员一样的项目结构,可以查看单个患者的详细信息,所以当两个管理员同时寻找相同的病人详细信息(考虑健康状况)时。我得到的例外就像

代码语言:javascript
复制
Row was updated or deleted by another transaction

调试后,在controller端没有问题,但是在gsp中有一个service call延迟了gsp的呈现过程,因此当另一个管理员试图呈现相同的gsp时,这个异常会自动出现。

注1:我无法避免来自gsp的服务调用。

注2:不存在保存或更新操作,因此合并()或lock()之类的解决方案将难以工作。

我的问题:有没有办法让这个请求等到渲染过程结束?或者其他避免这种异常的方法。

代码片段

代码语言:javascript
复制
def test = testService.getAllLogs(id, startDate, endDate)
render(view:"test",model:[test: test])
EN

回答 1

Stack Overflow用户

发布于 2014-03-07 13:34:55

如果由于视图操作和没有编辑而真正发生了问题,那么您可能有一些东西正在进行修改,grails正在试图为您自动保存。

查找gsp或控制器中域对象上列表的排序,这些列表将在没有真正改变的情况下导致更新。您还可以在db中查看版本列是否正在页面视图上更新。

现在,如果真正的问题是编辑发生在多个地方,那么您有几个选项。将域模型分解为有限的编辑碰撞。或者确保将所有更改从服务器推回活动页面。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22246987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档