`

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 class="sequence"> 
				<param name="sequence">DEPARTMENT_ID_SEQ</param> 
			</generator> 
		</id>

 2.如果要使用native,则必须创建名为HIBERNATE_SEQUENCE 的sequence

CREATE SEQUENCE HIBERNATE_SEQUENCE MINVALUE 90000 MAXVALUE 999999999999999999999999 
      < id name="id" column="ID">   
                  < generator class="native" /> 
       < /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")
 

 

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

分享到:
评论

相关推荐

    oracle数据库编程pdf文档教案

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据重要地位。这份"Oracle数据库编程pdf文档教案"提供了从基础到高级的Oracle学习路径,通过5天的学习内容,帮助读者深入理解并掌握...

    Oracle数据库对象管理及备份与恢复.pdf

    首先,关于Oracle数据库对象管理,主要包括创建和修改表结构、管理索引、维护表分区、创建和管理视图及序列等操作。创建表(CREATE TABLE)是数据库管理中最基础的操作,涉及到数据类型、存储参数和数据块管理等特性...

    【故障解决】OGG-00446 Could not find archived log for sequence.pdf

    然而,在实际操作过程中可能会遇到各种各样的问题,其中之一便是“OGG-00446 Could not find archived log for sequence”这一错误。本文将深入探讨这一错误的原因、故障现象以及如何解决这一问题。 #### 二、错误...

    oracle数据库开发规范.pdf

    根据提供的文件内容,可以看出这份文档是关于Oracle数据库开发规范的。接下来我将详细解释文档中涉及的Oracle数据库相关知识点。 首先,文档中提到了一些关键的Oracle数据库对象,包括: 1. 表(table): 是存储...

    Oracle数据库常见维护问题手册-精典

    这将显示一系列关于数据库实例启动的信息,包括各种内存结构的初始化、数据文件的加载以及最终数据库状态的变化等。 **数据库关闭方式** 同样地,使用`SQL*Plus`工具来关闭数据库实例: ```bash sqlplus / as ...

    Oracle创建自增字段方法-ORACLE SEQUENCE的简单介绍

    Oracle SEQUENCE 是一种特殊的数据库对象,用于生成一系列唯一的数值,通常用于主键或其他需要唯一标识的字段。下面将详细介绍 Oracle 创建自增字段方法-ORACLE SEQUENCE 的简单介绍。 1. 创建 SEQUENCE 要创建 ...

    Oracle数据库设计优化指导

    《Oracle数据库设计优化指导》 Oracle数据库设计优化是提升系统性能和数据管理效率的关键环节。此指导旨在为CRM产品的数据库设计提供一套规范,以确保数据库设计的质量,进而提高软件产品的整体质量。该规范主要...

    oracle数据库的功能

    ### Oracle数据库功能详解 #### 一、SQL语言基础 **SQL**(Structured Query Language,结构化查询语言)是用于管理关系数据库的标准语言。SQL语言主要包括以下几个方面: 1. **DDL (Data Definition Language)**...

    oracle 数据库管理与应用系统开发代码

    Oracle数据库管理系统是全球广泛使用的大型关系型数据库系统之一,它在企业级数据管理和应用程序开发中扮演着核心角色。本文将深入探讨Oracle数据库管理的关键概念、应用系统开发的代码实践以及如何利用Oracle进行...

    生成oracle数据库中的所有sequence的语句

    可以根据oracle数据库中存在的sequence,生成建立语句

    Oracle数据库操作文档

    ### Oracle数据库操作详解 #### 一、创建与配置数据库 在进行Oracle数据库的操作之前,首先需要确保已经安装了Oracle数据库软件,并且配置好相应的环境。接下来是创建一个新的数据库实例: 1. **创建数据库实例**...

    oracle数据库字段值自动加1

    Oracle 数据库字段值自动加 1 Oracle 数据库中,字段值自动加 1 是一个常见的需求,特别是在数据插入时需要自动生成唯一标识符的情况下。下面将详细介绍如何实现 Oracle 数据库字段值自动加 1。 首先,需要创建一...

    Oracle数据库表序列ID自增生成器

    Oracle数据库在设计和管理大型数据系统时扮演着关键角色,其中序列(Sequence)是一种非常重要的对象,用于生成唯一的整数序列,通常用作表的主键。本篇将深入探讨Oracle数据库表序列ID自增生成器及其相关知识点。 ...

    DOC命令操作oracle数据库

    在Oracle数据库管理系统中,`doc`命令可能指的是文档或指令集,用于执行对数据库的一系列基本操作。这里我们将详细探讨如何使用这些命令来操作Oracle数据库。 首先,要查询已知表的全部数据,可以使用`SELECT * ...

    JeeSite 默认MySql,让我们来看看如何更换为Oracle数据库

    《JeeSite 默认MySQL 转换为Oracle数据库详解》 JeeSite 是一个基于Spring Boot、Spring MVC、MyBatis、Activiti等技术构建的企业级快速开发平台,其默认数据库为MySQL。然而,根据业务需求,我们可能需要将JeeSite...

    vcenter6.0采用oracle11g独立数据库

    ### vCenter 6.0与Oracle 11g独立数据库集成相关知识点 #### 一、安装环境概述 在本环境中,vCenter 6.0将采用Oracle 11g作为其独立数据库。为了实现这一点,我们需要在现有的一台服务器上安装Oracle数据库,并创建...

    oracle数据库常用操作指令

    Oracle数据库是目前广泛使用的大型关系型数据库管理系统之一。在日常的数据库维护和管理过程中,经常会用到各种操作指令来完成特定的任务。针对Oracle数据库,常用的操作指令可以分为数据控制语句(DML)、数据定义...

    oracle数据库迁移

    Oracle 数据库迁移 Oracle 数据库迁移是指将 Oracle 数据库从一个平台迁移到另一个平台的过程。这个过程包括字符集的介绍和设置、用户的导出和导入、表空间的创建和管理等几个方面。 一、字符集的介绍和设置 在 ...

    Oracle sequence 重置(失效恢复)

    在进行Oracle数据库移植或维护时,可能会遇到Sequence失效的问题。这种情况通常发生在数据迁移后,原有的Sequence不再与表中的最大值相匹配,导致新记录插入时出现ID冲突或者跳号的情况。为了解决这个问题,我们需要...

Global site tag (gtag.js) - Google Analytics