没什么影响,除了save后返回的id要+1,其它的没什么影响.看看这个:
用oracle的trigger生成主键的时候和hibernate冲突的讨论
(http://www.hibernate.org.cn/78.html)

解决方案 »

  1.   

    哦?你在hibernate用Sequence生成表的主键都是正常递增的?可以说说你是怎么做的吗?我看了8088(方6) 提到的帖子,里面说的情况和我的一样
      

  2.   

    谢谢  8088(方6)zhigangsun(流星) 你能说说你是怎么做的吗?
    感觉这个问题还是比较普遍的,如果能够解决会帮助很多人的 :)
      

  3.   

    我如果就是想用Sequence呢?是不是就是只能2,4……了?有没有人可以不修改hibernate就解决这个问题?
      

  4.   

    你的sequence的increment是2吧,修改试一下了!
      

  5.   

    我以前試過,是用的oracle的數據庫,沒有出現這種情況啊.我想應該應該和hibernate沒有關係.
      

  6.   

    太奇怪了,为什么有人说有这种情况,有人说没有?asp4567(无悔浪子) ,你是用了Senquence去生成主键的吗?
      

  7.   

    對啊,就是用Senquence生成的啊 沒有問題,不過時間長了,細節問題都忘了.反正是在數據庫里創建Sequence.然後,在配置的時候指定一下,就好了.
      

  8.   

    不可能我一直在 在使用senquence,没有这样的情况啊,一定是你创建vsequence有问题。
      

  9.   

    我肯定我的sequence没有问题。而且你看http://www.hibernate.org.cn/78.html这里也提出了同样的问题啊
      

  10.   

    我认为是你设置了双重的increment所导致的。
    如果使用Hibernate,并且在*.hbm.xml映射文件里面做了:
    <id
                name="id"
                column="Id"
                type="java.lang.Long"
                unsaved-value="null"
            >
                <generator class="increment">
                </generator>
            </id>
    这样的映射后,那么不需要在Oracle里面建立自增的sequence。插入的数据会根据该映射文件自动的往数据库表该ID主键列插入自增的序列。
    但是如果你同时又在数据库里面设置了sequence,那么可能就会导致你目前的sequence的步长不是1而是2了。
    希望我的解答对你有帮助,谢谢!
      

  11.   

    不是的,我的hbm.xml文件关于你提到的部分是这样写的:    <id
            name="yonghuid"
            type="java.lang.Long"
            column="YONGHUID"
        >
            <meta attribute="field-description">
               @hibernate.id
                generator-class="sequence"
                type="java.lang.Long"
                column="YONGHUID"
               @hibernate.generator-param
            name="sequence"
            value="s_yonghuid"
            </meta>
            <generator class="sequence">
                <param name="sequence">s_yonghuid</param>
            </generator>
        </id>
      

  12.   

    <id name="examineID" type="long" unsaved-value="null" >
        <column name="examineid" not-null="true"/>
        <generator class="sequence">
            <param name="sequence">examine_id_seq</param>
        </generator>
    </id>
    我是这么写的,没有遇到你说的问题,
      

  13.   

    再说明一下,我觉得你可能是用什么工具建立的表,你的这个字段值是自增长的(也就是通过trigger实现的自增长),Sequence在Oracle里是个对象而非某一字段类型
      

  14.   

    嗯 我的字段值是通过trigger实现自增长的,引用的sequence每次增长为1虽然问题不大,但仍想搞明白