我正在从Grails创建一个宁静的服务,并希望在每个表上添加一个用户字段,在插入或更新时自动更改为相应的用户进行更改。
有没有办法创建像version
或dateCreated
这样的变量,这些变量会自动绑定到每个定义并添加的域,并在创建或更新时自动更新?
答案 0 :(得分:1)
1。定义一个抽象的域类,在其上放置您的公共字段(src/groovy
)
2。通过需要公共字段的每个域对象进行扩展
所以你的抽象域类看起来像这样(还要注意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
}
}
}
}