Grails .save(flush:true)不会立即保存数据

Ara*_*ppu 1 grails hibernate grails-orm

情况:

我使用名为firstService的Grails资源和服务发送请求;

第一个请求的任务是

  1. 保存书籍实例书1 book1.save(flush: true);
  2. 同时等待60秒或book1的属性由第二个请求的另一个请求更新

但是当我用book1.save(flush: true);它保存时不会立即保存,这就是为什么在60秒内第二个请求找不到book1实例;

第二个请求的任务只是更新第一个请求的数据.

我该如何解决这个问题?

AA.*_*AA. 7

book1.save()不返回true,返回自身(book1)或在错误时返回null.

有四种方法可以判断是否可以保存对象

  • validate保存前的方法.它应该返回true
  • hasErrors保存前的财产.它应该返回false
  • save 如果一切正常,则返回实例
  • save(failOnError: true)参数的方法在验证失败时引发错误

如果您完全确定对象已保存,请检查以下内容:

  • 您是否在测试环境中保存对象?测试清除数据库,您必须在每个数据库中创建对象或使用setup方法来创建它
  • 您是在服务中保存对象吗?服务是事务性的,因此如果在保存之后出现错误,则所有事务都是回滚.

注意:每个Grails开发人员都必须阅读@pledbrook文章 GORM Gotchas