该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2003-12-05
ffeliza 写道 sayor 写道 对不起没仔细看,如果这样的话的确需要自己写Generator,但你为什么要这样做呢?既然没有业务意义,为什么不用long型呢?应该无所谓这个id是什么型的吧。
hehe,某行业的国际标准。为了适应不同数据库、不同开发语言的需要——我的理解。 既然没有业务意义,又何谓某行业的国家标准呢? 不同数据库,不同开发语言,哪一种没有Long型呢? |
|
返回顶楼 | |
发表时间:2003-12-05
那你的id总有一定的格式,规则吧。
|
|
返回顶楼 | |
发表时间:2003-12-05
sayor 写道 ffeliza 写道 sayor 写道 对不起没仔细看,如果这样的话的确需要自己写Generator,但你为什么要这样做呢?既然没有业务意义,为什么不用long型呢?应该无所谓这个id是什么型的吧。
hehe,某行业的国际标准。为了适应不同数据库、不同开发语言的需要——我的理解。 既然没有业务意义,又何谓某行业的国家标准呢? 不同数据库,不同开发语言,哪一种没有Long型呢? [color=red]UlongLong[/color] This type is an unsigned integer with 64-bit resolution. It is used as the basis of time and resource identifier types. A ResourceID is divided into two 64-bit fields to further improve the performance of implementations when dealing with large groups of related resources and multiple data providers. |
|
返回顶楼 | |
发表时间:2003-12-05
robbin 写道 不需要修改Hibernate源代码,你自己编写一个类 implements net.sf.hibernate.id.IdentifierGenerator就可以了。 hibernate对于设定为“generator”的ID应该是自动调用net.sf.hibernate.id.IdentifierGenerator吧。 那我的类implement了net.sf.hibernate.id.IdentifierGenerator后,怎样才能让hibernate在分配id时自动调用我的类呢? |
|
返回顶楼 | |
发表时间:2003-12-05
<generator class="com.yourcompany.YourGeneratorClassName">
|
|
返回顶楼 | |
发表时间:2003-12-08
yehs220 写道 <generator class="com.yourcompany.YourGeneratorClassName">
thank you |
|
返回顶楼 | |
发表时间:2003-12-08
yehs220 写道 <generator class="com.yourcompany.YourGeneratorClassName">
thank you for your help. it does work! |
|
返回顶楼 | |
发表时间:2004-02-27
看了大家的讨论,我想起实际项目中经常出现的主键,就是按照一定的规则编码的主键,如产品表,主键编码方式:xxxyyyzzz,xxx:类型代码,yyy:生产厂家代码,zzz:产品序列号,当然,通常类型有一个表存储维护,生产厂家也有一个表存储维护,这样的主键用什么方法实现?还有,一个表中如果自我级联,如有ID、Parent_ID,ID用每两位一级,如:ID=0011,Prent_ID=00,表示是ID=00的第11个子记录,这样的ID又怎么实现?
|
|
返回顶楼 | |
发表时间:2004-03-01
可以自己编写一个类 implements net.sf.hibernate.id.IdentifierGenerator。
在实现过程中,ID的主要生成过程继承(照搬)hibernate自带的方法,但在该继承方法内部添加一些操作,修改由hibernate方法生成的ID,是ID变成自己所需要的样子。 你搜一下,yehs220曾经回复过某位朋友的帖子(也是关于主键生成方式的)。 |
|
返回顶楼 | |
发表时间:2007-04-28
ffeliza 写道 可以自己编写一个类 implements net.sf.hibernate.id.IdentifierGenerator。
在实现过程中,ID的主要生成过程继承(照搬)hibernate自带的方法,但在该继承方法内部添加一些操作,修改由hibernate方法生成的ID,是ID变成自己所需要的样子。 你搜一下,yehs220曾经回复过某位朋友的帖子(也是关于主键生成方式的)。 业务上的ID和系统ID可以分开实现的,省得麻烦 |
|
返回顶楼 | |