grails - 如何在 Grails 中创建类似版本的通用字段?

标签 grails grails-orm

我正在从 Grails 创建一个安静的服务,并希望在每个表上添加一个用户字段,该字段在插入或更新时会自动更改为进行更改的相应用户。

有没有办法创建像 version 这样的变量?或 dateCreated哪些自动绑定(bind)到定义和添加的每个域,在创建或更新时自动更新?

最佳答案

1. 定义一个抽象域类,把你的公共(public)字段放在上面(在 src/groovy 上)
2. 通过每个需要公共(public)字段的域对象来扩展它

因此,您的抽象域类将如下所示(另请注意 updateByUsercreatedByUser 是如何自动确定的):

abstract class AbstractDomain  {

    transient securityService

    User createdByUser;
    User updatedByUser;

    def beforeInsert() {

        if(null != securityService) {

            User currentUser = securityService.getCurrentUser()

            if(null != currentUser){
                this.createdByUser = currentUser
            }
        }
    }

    def beforeUpdate() {

        if(null != securityService) {

            User currentUser = securityService.getCurrentUser()

            if(null != currentUser){
                this.updatedByUser = currentUser
            }
        }
    }
}

关于grails - 如何在 Grails 中创建类似版本的通用字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30160614/

相关文章:

java - chalice 。使用@GrailsCompileStatic时如何处理 'mixed'方法和变量

java - Grails:GORM:遍历多对多关系

grails - 查看另一个域类中的grails域类属性

grails - 如果情况下,在不真实的情况下奇怪地调用合并

java - Grails:删除所有关联的对象

grails - GroovyDynamicMethodsInterceptor

grails - 收到错误WAR打包错误:grails war启动失败

testing - 什么是复杂 Web 应用程序功能测试的最佳工具

grails - LDAP:错误代码49-登录时无效的凭证

mysql - 数据库查询与优化-HQL