首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

怎么写一个hibernate生成以年月日(0001递增)主键

2012-11-09 
如何写一个hibernate生成以年月日(0001递增)主键要用hibernate主键生成器,符合以下规则: U200710130001 U

如何写一个hibernate生成以年月日(0001递增)主键
要用hibernate主键生成器,符合以下规则:
U200710130001
U为表的第一个字线,如user表为U
2007表示2007年
10表示10月份
13表示13号
0001表示以00001为这天第一个用户的ID,
但是到了明天再注册的第一个ID号应该为:U200710140001
请问这个生成器如何写,我苦苦思索,还是写不出来.,麻烦有代码的贴代码.有思路的给个思路.
小弟在此谢过!? 1 楼 tiyi 2007-10-13   不要用业务主键

其次可以另外写一个生成器(和Hibernate生成器无关,类似工具类)。
建立一个表记录每日的生成数。
记得带同步锁否则多线程可能会生成相同编号。 2 楼 guojiafuzhuxi 2007-10-16   呵呵.关键是这个日期改变之后0001-000X如何归零 3 楼 抛出异常的爱 2007-10-16   1.用单实例模式
2.得到键的方法要加锁
3.有一个属性用来保存上回得到的键值
4.初始化时遍历所有的表得到最大的键值,当作属性的初始值。 4 楼 movingboy 2007-10-16   不是一定要用Java来写,也可以考虑在存储过程中生成你需要的键值,Java程序调用该存储过程取得结果即可
就是把楼上提到的4件事情移到数据库中处理,那种办法更适合得自己权衡了 5 楼 spiritfrog 2007-10-30   更倾向于java写,呵呵。写一个hibernate的key生成器会简单点。

热点排行