在beforeInsert中初始化Date属性会毫无例外地失败

时间:2012-03-12 18:40:58

标签: grails spring-security gorm

我有一个标准用户类,它是由Grails 2.0.1中的spring-security-core插件创建的。我使用mongodb插件使用mongodb进行持久化。

如果我将Date属性添加到用户类并将beforeInsert()事件处理程序更改为此类

def beforeInsert() {
    userCreated = new Date()
    encodePassword()
}

用户不再持久化。没有例外。它只是默默地失败了。 如果我在定义userCreated属性时初始化它:

Date userCreated = new Date() 

并从beforeInsert()事件处理程序中删除初始化一切正常。 有没有人对这种行为有解释?

顺便说一句:我故意不使用自动时间戳功能,因为我想使用创建日期加密密码。如果我通过自动时间戳使用dateCreated,则在调用beforeInsert()事件处理程序并且密码不再起作用后更新dateCreated字段。

1 个答案:

答案 0 :(得分:0)

尝试将beforeInsert代码包装到事务中,因为我认为encodePassword()方法不是服务方法