我正在从 Grails 创建一个安静的服务,并希望在每个表上添加一个用户字段,该字段在插入或更新时会自动更改为进行更改的相应用户。
有没有办法创建像 version
这样的变量?或 dateCreated
哪些自动绑定(bind)到定义和添加的每个域,在创建或更新时自动更新?
最佳答案
1. 定义一个抽象域类,把你的公共(public)字段放在上面(在 src/groovy
上)
2. 通过每个需要公共(public)字段的域对象来扩展它
因此,您的抽象域类将如下所示(另请注意 updateByUser
和 createdByUser
是如何自动确定的):
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/