Grails不会为数据库对象生成ID。我创建了具有相应域类的对象。现在,如果我调用save(flush:true),我会在...中获得null id

但是冲洗是否应该生成ID?

最佳答案

您确定它确实已经保存了吗,这通常意味着有错误,因此您需要捕获它并将其中继回去。
您应该可以通过执行以下操作查看错误

if (!object. save(flush:true)) {
  // throw new RuntimeException("something went wrong");
   //println "object errors ${object.errors} //.allErrors}
   //or
   //object.errors.reject('object.failed.saved', '')
}

有时甚至是更多的嵌套故障,可以像这样被捕获
try {
            subobject.removeFromElements(object)
            subobject.save(flush:true)
        } catch (Exception e) {
            throw new ValidationException('failed.message',subobject.errors)
        }

如果您首先尝试第一种方法以查看是否有错误,则通过将try catch包裹在整个保存块中来查看是否有其他组件导致了您的问题,最后还是仍然没有尝试作为测试。在这两者之间,您可以回答

关于grails - 保存并刷新时没有生成Grails,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41217448/

10-13 05:10