我有一个应用程序正在使用我刚刚迁移到Grails 2.0的Grails 1.3.7.该应用程序使用自动的dateCreated和lastUpdated字段来管理与对象的创建和修改相关联的时间戳.升级后,我收到以下错误:
| 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
评论我的域类中的上述字段使问题消失.
Grails 2.0中的dateCreated和lastUpdated字段已被弃用?如果是这样,这是否意味着我必须编写代码才能手动处理此功能,或将代码移动到某种插件,如audit-trail插件?
解决方法
好的,通过在域类定义中手动将autoTimestamp变量设置为“true”来修复它:
static mapping = { autoTimestamp true }
我猜这个属性在将项目从Grails 1.3.7迁移到2.0.0之后没有设置.