当hibernate说它被锁定时如何覆盖表?

时间:2011-09-02 08:58:54

标签: database hibernate grails locking

对于我的应用程序,作者写文章我实现了autoSave机制。这定期更新DB中的数据。由于我在锁定行为方面存在一些问题(每个表中的版本字段都用于此),我需要覆盖脏条目。

是否有一些“标志”或命令用于保存到DB并忽略休眠锁定?

如果它是脏的并且在再次保存之后它是否可以再次从DB获取数据?由于我们现在有一个新版本并且锁定结束,因此保存应该没有问题。

伪代码(未经测试):

if (article.isDirty()) {
  article.get(params.id)
}
article.bindData(params)
article.save()

1 个答案:

答案 0 :(得分:0)

查看域类的 refresh()方法:http://www.grails.org/doc/latest/ref/Domain%20Classes/refresh.html

请注意,有一些警告,所以最好的方法是提取最新版本的域对象,然后以编程方式合并数据:http://www.grails.org/doc/latest/guide/single.html#5.3.5%20Pessimistic%20and%20Optimistic%20Locking