Grails 3控制台没有在数据库中创建对象实例

时间:2017-12-12 09:06:18

标签: grails

我正在阅读Manning的书" Grails in Actions",我有以下问题。他们展示了一个示例,当您拥有数据模型对象时,可以在整个grails控制台中创建它的实例。我启动它,我创建它。它表示实例已创建,但当我回顾数据库时,Quote表为空并且没有实例。这很奇怪,因为控制台找到了数据模型。这些记录在哪里以及为什么不写入数据库?

ScreenShot

域模型是:

package qotd

class Quote {
  String content
  String author
  Date created = new Date()

  static constraints = {
  }
}

1 个答案:

答案 0 :(得分:0)

这里可能会发生一些事情:

  • 确保没有验证错误

如果未达到您定义的约束,保存将失败,您可以使用下面的代码在控制台中快速检查,但在生产中您将检查验证错误。

quote.save(failOnError: true) // only for testing
  • 数据库在事务中工作

最佳做法是在@Transnational服务中使用此逻辑 - 如果您在外部工作,则使用交易

Quote.withTransaction { ...().save() }