posts - 247,  comments - 25,  trackbacks - 0
OID: 对象标识符
assigned :OID由业务逻辑程序负责产生,hibernate只负责持久化,常用于映射自然主键
hilo:OID由hibernate按照high/low算法产生,该算法需要从数据库的某个表的字段中读取high值
increment:OID由hibernate依递增方式产生,该算法依赖保存于当前应用实例中的一个最大值变量,当有多个应用 实例需要访问数据库时难免出现重复的主键
identity:OID由底层数据库的自增主键生成机制产生,如mysql的auto_increment类型主键和sql_server的identity主键
sequence:OID由底层数据库的sequence主键生成机制产生,如oracle
native:根据底层数据库自动生成OID能力的支持情况,具体选择上面的哪个标识生成器,常用于跨平台

如:mysql,sybase,db2,sqlserver数据库的主键映射:
.....
    <id name="id" column="ID" type="integer">
            <generator class="identity"/>
    </id>

    db2,oracle,postgresql,interbase,mckoi,sapdb数据库的主键映射:
.....
    <id name="id" column="ID" type="integer">
            <generator class="sequence"/>
    </id>

    跨平台应用中的主键映射:
   .....
    <id name="id" column="ID" type="integer">
            <generator class="native"/>
    </id>
    
    自然主键映射:
    .....
    <id name="id" column="ID" type="integer">
            <generator class="assigned"/>
    </id>
    
    复合自然主键映射:
    .....
    <composite-id>
        <key-property name="userName" column="UserName" type="String"/>
        <key-property name="userPwd" column="UserPwd" type="String"/>
    </composite-id>


posted on 2008-05-24 21:04 林的 阅读(265) 评论(1)  编辑  收藏 所属分类: hibernate

FeedBack:
# re: hibernate 常用标识生成器
2013-11-12 14:52 | 艺达广告
艺达广告欢迎您  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
<2013年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

想回家了,呵呵!

常用链接

留言簿(6)

随笔分类

随笔档案

文章分类

文章档案

相册

收藏夹

搜索

  •  

最新评论

阅读排行榜

评论排行榜