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>
在配置主鍵生成策略爲native(根據方言),sequence(oracle等),identity(mysql等),即自動生成時候將主鍵設置成了String類型。
情況3:
配置主鍵爲native的時候缺少sequence(博主就是這種情況),添加sequence即可,例子來自網絡。
1.3例子
CREATE SEQUENCE HIBERNATE_SEQUENCE MINVALUE 90000 MAXVALUE 999999999999999999999999 INCREMENT BY 1 NOCYCLE;