我有一个像两个管理员一样的项目结构,可以查看单个患者的详细信息,所以当两个管理员同时寻找相同的病人详细信息(考虑健康状况)时。我得到的例外就像
Row was updated or deleted by another transaction调试后,在controller端没有问题,但是在gsp中有一个service call延迟了gsp的呈现过程,因此当另一个管理员试图呈现相同的gsp时,这个异常会自动出现。
注1:我无法避免来自gsp的服务调用。
注2:不存在保存或更新操作,因此合并()或lock()之类的解决方案将难以工作。
我的问题:有没有办法让这个请求等到渲染过程结束?或者其他避免这种异常的方法。
代码片段
def test = testService.getAllLogs(id, startDate, endDate)
render(view:"test",model:[test: test])发布于 2014-03-07 13:34:55
如果由于视图操作和没有编辑而真正发生了问题,那么您可能有一些东西正在进行修改,grails正在试图为您自动保存。
查找gsp或控制器中域对象上列表的排序,这些列表将在没有真正改变的情况下导致更新。您还可以在db中查看版本列是否正在页面视图上更新。
现在,如果真正的问题是编辑发生在多个地方,那么您有几个选项。将域模型分解为有限的编辑碰撞。或者确保将所有更改从服务器推回活动页面。
https://stackoverflow.com/questions/22246987
复制相似问题