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;






  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值