首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grails 2.0中的dateCreated、lastUpdated字段

Grails 2.0中的dateCreated、lastUpdated字段
EN

Stack Overflow用户
提问于 2012-01-29 17:52:44
回答 4查看 24K关注 0票数 13

我有一个使用Grails 1.3.7的应用程序,我刚刚将其迁移到Grails 2.0。应用程序使用自动dateCreatedlastUpdated字段来管理与对象的创建和修改相关联的时间戳。升级后,我得到以下错误:

代码语言:javascript
复制
| Running Grails application
| Error 2012-01-29 22:36:53,504 [Thread-8] ERROR util.JDBCExceptionReporter  - ERROR: null value in column "date_created" violates not-null constraint
| Error 2012-01-29 22:36:53,510 [Thread-8] ERROR events.PatchedDefaultFlushEventListener  - Could not synchronize database state with session

在我的Domain类中注释掉上面提到的字段可以解决这个问题。

Grails2.0中是否已经弃用了dateCreatedlastUpdated字段?如果是这样,这是否意味着我必须手动编写代码来处理此功能,或者代码已被移动到某种插件中,如audit-trail插件?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-30 16:52:09

好的,通过在域类定义中将autoTimestamp变量手动设置为"true“来修复它:

代码语言:javascript
复制
static mapping = {
        autoTimestamp true
}

我猜这个属性是在将项目从Grails 1.3.7迁移到2.0.0之后没有设置的。

票数 18
EN

Stack Overflow用户

发布于 2012-01-30 01:08:24

Grails 2.0仍然支持自动时间戳。It's listed in the manual (scroll a bit from this link)

但是,它特别提到:

如果您将nullable: false约束放在dateCreatedlastUpdated上,您的域实例将无法通过验证-可能不是您想要的。除非您已禁用自动时间戳,否则请关闭这些属性的约束。

票数 6
EN

Stack Overflow用户

发布于 2012-05-05 03:08:56

Grails 2.0.3中有一个bug,在使用Postgres时可能会导致这个问题。参见http://jira.grails.org/browse/GRAILS-8988。该问题表示将在2.0.4发布时解决。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9052292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档