我有一个标准用户类,它是由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字段。
答案 0 :(得分:0)
尝试将beforeInsert代码包装到事务中,因为我认为encodePassword()方法不是服务方法