浏览 3145 次
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-10-13
U200710130001 U为表的第一个字线,如user表为U 2007表示2007年 10表示10月份 13表示13号 0001表示以00001为这天第一个用户的ID, 但是到了明天再注册的第一个ID号应该为:U200710140001 请问这个生成器如何写,我苦苦思索,还是写不出来.,麻烦有代码的贴代码.有思路的给个思路. 小弟在此谢过! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-10-13
不要用业务主键
其次可以另外写一个生成器(和Hibernate生成器无关,类似工具类)。 建立一个表记录每日的生成数。 记得带同步锁否则多线程可能会生成相同编号。 |
|
返回顶楼 | |
发表时间:2007-10-16
呵呵.关键是这个日期改变之后0001-000X如何归零
|
|
返回顶楼 | |
发表时间:2007-10-16
1.用单实例模式
2.得到键的方法要加锁 3.有一个属性用来保存上回得到的键值 4.初始化时遍历所有的表得到最大的键值,当作属性的初始值。 |
|
返回顶楼 | |
发表时间:2007-10-16
不是一定要用Java来写,也可以考虑在存储过程中生成你需要的键值,Java程序调用该存储过程取得结果即可
就是把楼上提到的4件事情移到数据库中处理,那种办法更适合得自己权衡了 |
|
返回顶楼 | |
发表时间:2007-10-30
更倾向于java写,呵呵。写一个hibernate的key生成器会简单点。
|
|
返回顶楼 | |