我有一个域对象Issue
,它有一个属性Date createTime
,我希望GORM使用一些自定义逻辑作为id。
例如,假设在Issue
上创建了第一个2011/08/02
,ID
应为2011080201
。同一天的下一个Issue
应该有ID
2011080202
,依此类推。
然后,第二天2011/08/03
ID
创建的第一个问题应为2011080301
。
所以基本要求是我必须在createTime
属性上附加一个递增的值。
应该采用什么方法?
答案 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