[Grails] 自定义业务主键的生成方式
commanderhyk
2012-04-21
数据库表的主键需要使用自定义主键的生成方式:
根据系统登录的用户对象的行政区划代码+日期8位+3位序列,每天序列要清零 如:北京东城区的用户20120101日登陆系统,保存某个业务表的时候,系统生成的主键应该是 '110101-20120101-003' 请教一下,这个需求的代码应该如何写?谢谢 |
|
rivenhong
2012-04-21
1 你可以定义主键为String 类型的。
2 你将主键的生成规则设为assigned,然后在保存对象前,自己按设定规则set主键。 例如: 在你的domain类中,主键名为myId。 String myId static mapping = { id generator: 'assigned', name: "myId", column: "MY_ID" } |
|
commanderhyk
2012-04-22
谢谢你的指点,我不知道能否做到这样:使用后台自动生成主键,并且仍然可以使用scaffolding
|
|
kidli
2012-04-27
2楼 + 注册一个HibernateEventListener,监控pre-insert,给自动id字段赋值
|