不用hibernate中的主键生成机制,oracle中有直接在建表时就设置主键为自动增长的吗? 

解决方案 »

  1.   

    没有,用系列-- 序列号的产生 
    create sequence row_id 
    minvalue 1 
    maxvalue 9999999999999999999999 
    start with 1 
    increment by 1 insert into test values(row_id.nextval,....)  
    当前序列号row_id.currentval
      

  2.   

    嗯,頂樓上用序列
    多個表的number類型可以用同一個序列(有斷號)
      

  3.   

    序列比自动编号灵活多了吧????
    放心,序列是会话,事务一致性(不会被回滚,所有会话一致)。
    序列只有当一下三个情况才发生断号:
    1。多个表用一个序列。
    2。数据删除。
    3。序列启用了缓存机制,并且系统灾难发生,数据库没有机会写回序列号。但不用缓存机制,那个速度哟,伤心。序列再我看来,肯定比ms系列的数据库的自动编号字段灵活若干
    好比:你如果要知道下个保存进去的编号是多少,ms数据库你只要插入记录才能返回,oracle你直接放心的直接取
      

  4.   


    create sequence row_id
    minvalue 1
    maxvalue 99999999999
    start with 1
    incerment by 1
      

  5.   

    Oracle用的是sequence.Oracle的每个数据表还有一个隐含的ROWID字段,它绝对是唯一的。你可以用select语句查查看。