如何在Grails中创建类似通用的字段?

时间:2015-05-11 06:08:03

标签: grails gorm

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

有没有办法创建像versiondateCreated这样的变量,这些变量会自动绑定到每个定义并添加的域,并在创建或更新时自动更新?

1 个答案:

答案 0 :(得分:1)

1。定义一个抽象的域类,在其上放置您的公共字段(src/groovy
2。通过需要公共字段的每个域对象进行扩展

所以你的抽象域类看起来像这样(还要注意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
            }
        }
    }
}