Grails 保存方法返回 null

ben*_*rre 2 grails grails-orm

我一直在使用以下简写将实体保存在 grails 的数据库中...

def jim = new User(name: "Jim",
                emailAddress: "jim@hotmail.com",
                backOfficeUser: false,
                dateCreated: Instant.now(),
                lastUpdated: Instant.now(),
                passwordHash: BCrypt.hashpw("secret123", BCrypt.gensalt())).save(flush: true)
Run Code Online (Sandbox Code Playgroud)

一切似乎都工作正常,直到某些原因导致 .save() 和 save(flush: true) 返回 null。如果我将声明更改为这样,它就可以正常工作......

    def jim = new User(name: "Jim",
            emailAddress: "jim@hotmail.com",
            backOfficeUser: false,
            dateCreated: Instant.now(),
            lastUpdated: Instant.now(),
            passwordHash: BCrypt.hashpw("secret123", BCrypt.gensalt()))
            jim.save(flush:true)
Run Code Online (Sandbox Code Playgroud)

然后,Jim 实例将立即拥有由数据库序列发出的 id,并在调用 save 时将其保留。

Mr.*_*Cat 6

在 grails 中,如果保存成功,则 save 返回保存的实例,如果失败,它将返回 null。请参阅保存参考说明部分。添加failOnError: true检查验证是否失败