Grails 使用自动 ID 在域持久性中创建额外的 属性

Grails using auto id to create additional property at domain persistence

肯定有更好的方法吗?

我想使用自动生成的 ID 创建另一个自定义 ID。目前我正在使用下面的 afterInsert 方法...

def afterInsert() {
    def Instance = TttTicket.get(this.id)
    Instance.number = project.ticketPrepender + id.toString().padLeft( 5, '0' )
    Instance.save()
}

谁能提出更好的方法?

Can anyone suggest a better way?

是的。

最好的做法取决于一些因素,比如这个 属性 存在的原因、它会不会改变以及您需要在哪里访问它。

一种选择是使 number 成为瞬态,删除 number 字段并使用 getNumber() 方法,该方法 returns 类似于 project.ticketPrepender + id.toString().padLeft( 5, '0' )