oracle数据库,关于 could not get next sequence value异常

oracle数据库,关于 could not get next sequence value错误!今天搞SSH的时候遇到could not get next seque

oracle数据库,关于 could not get next sequence value错误!

今天搞SSH的时候遇到could not get next sequence value这个问题。在网上找了很多解决问题的办法都没解决掉。

最后,我把数据库重置了。然后再运行就好了。很诡异的一个错误。

?

网上有很多解决方案,都应该是遇到不同的错误。我的这种做法最好先不要做。先试试别的方法。

切记要在数据库创建主键自动生成策略:

create?sequence?DEPARTMENT_ID_SEQstart with 1 INCREMENT BY 1?名字一定要能对上。

?

配置文件版本的:

1.<id name="id" column="ID">

<generator name="code">CREATE SEQUENCE HIBERNATE_SEQUENCE MINVALUE 90000 MAXVALUE 999999999999999999999999       < id name="id" column="ID">                     < generator />        < /id> 

?3. 如果<param name="sequence">MOKA_RECHARGE_MERCHANT_PRE_PAY</param> 这里面的表示过长也会照成could not get next sequence value!

解决,把MOKA_RECHARGE_MERCHANT_PRE_PAY改成小于30的字符。

?修改配置文件后注意:

??? 1:如果重新修改hibernate配置文件后,没有重新生成数据库表结果,直接做save动作的话,那就等着报 ORA-02289: 序列不存在这个异常吧。
??? 2:如果该表之前通过sql直接insert过2条数据,而且经过上面的修改后是直接修改该表,注意是修改而不是删除该表重新创建该表,那么通过hibernate在做save这个动作的时候会报
???? ORA-00001: 违反唯一约束条件 (POINT.SYS_C006384)这个错误,为什么呢?因为你的序列是重新开始的,而开始之前,你已经通过手动插入2条数据了,怎么解决呢?多做几次save的动作
直到大于数据库表中已经存在的序列id即可。

? ? 3.把数据库重置。

?

注释版本:@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="S_Teacher")

    @SequenceGenerator(name="S_Teacher",allocationSize=1,initialValue=1, sequenceName="S_Teacher")
?

?

暂时就记录这么多。希望大家有遇到的错误提出来一起探讨,一起记录。