grails - 保存并刷新时没有生成Grails

标签 grails

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/

相关文章:

grails - 如何检查groovy的哪个版本与grails的哪个版本

data-binding - Grails 绑定(bind)集合枚举

Grails GORM 事件被多次调用

grails - 跨多个域类的Grails过滤和排序

grails - 在已部署的Grails应用程序中找不到CSS

grails - 域类字段未显示在 View 页面上

validation - 对关联的 'hasMany' 对象进行 Grails 验证

grails - 从 TagLib 渲染图像

xml - 根据类层次结构创建XML

grails - 在 GSP 中使用 JSTL 标签