Grails:生成自定义ID

时间:2011-08-02 21:23:03

标签: hibernate grails gorm unique-id

我有一个域对象Issue,它有一个属性Date createTime,我希望GORM使用一些自定义逻辑作为id。

例如,假设在Issue上创建了第一个2011/08/02ID应为2011080201。同一天的下一个Issue应该有ID 2011080202,依此类推。

然后,第二天2011/08/03 ID创建的第一个问题应为2011080301

所以基本要求是我必须在createTime属性上附加一个递增的值。

应该采用什么方法?

1 个答案:

答案 0 :(得分:1)

我相信你必须创建一个自定义id生成器。

尝试创建一个实现接口org.hibernate.id.IdentifierGenerator的my.package.MyCustomIdGenerator类。

然后尝试像这样设置您的域类。

static mapping = {    
    id generator:'my.package.MyCustomIdGenerator', params:[...]    
}

以上语法可能不正确。但值得一试。

看看这里:http://grails.org/doc/1.0.x/guide/5.%20Object%20Relational%20Mapping%20(GORM).html

在这里:

http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-declaration-id