Hibernate: select hibernate_sequence.nextval from dual

Hibernate:
    select
        hibernate_sequence.nextval
    from
        dual



出現以上錯誤時,根據網絡總結了以下幾種情況:

情況1:

  使用oracle數據庫時,hibernate配置bean文件時,在*.hbm.xml中配置主鍵生成策略爲sequence,卻沒有指定sequence,例如:

例子來自http://iteye.blog.163.com/blog/static/186308096201301003651896/

1.1列子:

出現這個異常說明你對應映射表裏,沒有指明序列。解決辦法就是指明一個序列,如果沒有,就新建一個eg: CREATE SEQUENCE SEQ_TL_COMMON_ITEM INCREMENT BY 1;

原來:
<id name="numitemid" type="java.lang.Integer">  
    <column name="NUMITEMID" precision="20" scale="0" />  
    <generator class="sequence">  
        <param name="sequence"></param>  
    </generator>  
</id>  

改成:
<id name="numitemid" type="java.lang.Integer">  

    <column name="NUMITEMID" precision="20" scale="0" />  

    <generator class="sequence">  

        <param name="sequence">SEQ_TL_COMMON_ITEM</param>  

    </generator>  

</id> 


情況2:

    在配置主鍵生成策略爲native(根據方言),sequence(oracle等),identity(mysql等),即自動生成時候將主鍵設置成了String類型。

情況3:

    配置主鍵爲native的時候缺少sequence(博主就是這種情況),添加sequence即可,例子來自網絡。

1.3例子

CREATE SEQUENCE HIBERNATE_SEQUENCE MINVALUE 90000 MAXVALUE 999999999999999999999999 INCREMENT BY 1 NOCYCLE;






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章