Hibernate: select hibernate_sequence.nextval from dual

来源:互联网 发布:域名和网址的区别 编辑:程序博客网 时间:2024/05/21 07:56
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 1
原创粉丝点击