首页 > 解决方案 > Grails 使用自动 id 在域持久性中创建附加属性

问题描述

肯定有更好的方法吗?

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

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

任何人都可以提出更好的方法吗?

标签: grailspersistencegrails-orm

解决方案


任何人都可以提出更好的方法吗?

是的。

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

一种选择是制作number瞬态,删除该number字段并拥有一个getNumber()返回类似project.ticketPrepender + id.toString().padLeft( 5, '0' ).


推荐阅读