今天搞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数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据重要地位。这份"Oracle数据库编程pdf文档教案"提供了从基础到高级的Oracle学习路径,通过5天的学习内容,帮助读者深入理解并掌握...
首先,关于Oracle数据库对象管理,主要包括创建和修改表结构、管理索引、维护表分区、创建和管理视图及序列等操作。创建表(CREATE TABLE)是数据库管理中最基础的操作,涉及到数据类型、存储参数和数据块管理等特性...
然而,在实际操作过程中可能会遇到各种各样的问题,其中之一便是“OGG-00446 Could not find archived log for sequence”这一错误。本文将深入探讨这一错误的原因、故障现象以及如何解决这一问题。 #### 二、错误...
根据提供的文件内容,可以看出这份文档是关于Oracle数据库开发规范的。接下来我将详细解释文档中涉及的Oracle数据库相关知识点。 首先,文档中提到了一些关键的Oracle数据库对象,包括: 1. 表(table): 是存储...
这将显示一系列关于数据库实例启动的信息,包括各种内存结构的初始化、数据文件的加载以及最终数据库状态的变化等。 **数据库关闭方式** 同样地,使用`SQL*Plus`工具来关闭数据库实例: ```bash sqlplus / as ...
Oracle SEQUENCE 是一种特殊的数据库对象,用于生成一系列唯一的数值,通常用于主键或其他需要唯一标识的字段。下面将详细介绍 Oracle 创建自增字段方法-ORACLE SEQUENCE 的简单介绍。 1. 创建 SEQUENCE 要创建 ...
《Oracle数据库设计优化指导》 Oracle数据库设计优化是提升系统性能和数据管理效率的关键环节。此指导旨在为CRM产品的数据库设计提供一套规范,以确保数据库设计的质量,进而提高软件产品的整体质量。该规范主要...
### Oracle数据库功能详解 #### 一、SQL语言基础 **SQL**(Structured Query Language,结构化查询语言)是用于管理关系数据库的标准语言。SQL语言主要包括以下几个方面: 1. **DDL (Data Definition Language)**...
Oracle数据库管理系统是全球广泛使用的大型关系型数据库系统之一,它在企业级数据管理和应用程序开发中扮演着核心角色。本文将深入探讨Oracle数据库管理的关键概念、应用系统开发的代码实践以及如何利用Oracle进行...
Oracle 数据库字段值自动加 1 Oracle 数据库中,字段值自动加 1 是一个常见的需求,特别是在数据插入时需要自动生成唯一标识符的情况下。下面将详细介绍如何实现 Oracle 数据库字段值自动加 1。 首先,需要创建一...
可以根据oracle数据库中存在的sequence,生成建立语句
### Oracle数据库操作详解 #### 一、创建与配置数据库 在进行Oracle数据库的操作之前,首先需要确保已经安装了Oracle数据库软件,并且配置好相应的环境。接下来是创建一个新的数据库实例: 1. **创建数据库实例**...
在Oracle数据库管理系统中,`doc`命令可能指的是文档或指令集,用于执行对数据库的一系列基本操作。这里我们将详细探讨如何使用这些命令来操作Oracle数据库。 首先,要查询已知表的全部数据,可以使用`SELECT * ...
Oracle数据库在设计和管理大型数据系统时扮演着关键角色,其中序列(Sequence)是一种非常重要的对象,用于生成唯一的整数序列,通常用作表的主键。本篇将深入探讨Oracle数据库表序列ID自增生成器及其相关知识点。 ...
### vCenter 6.0与Oracle 11g独立数据库集成相关知识点 #### 一、安装环境概述 在本环境中,vCenter 6.0将采用Oracle 11g作为其独立数据库。为了实现这一点,我们需要在现有的一台服务器上安装Oracle数据库,并创建...
Oracle数据库是目前广泛使用的大型关系型数据库管理系统之一。在日常的数据库维护和管理过程中,经常会用到各种操作指令来完成特定的任务。针对Oracle数据库,常用的操作指令可以分为数据控制语句(DML)、数据定义...
Oracle 数据库迁移 Oracle 数据库迁移是指将 Oracle 数据库从一个平台迁移到另一个平台的过程。这个过程包括字符集的介绍和设置、用户的导出和导入、表空间的创建和管理等几个方面。 一、字符集的介绍和设置 在 ...
在进行Oracle数据库移植或维护时,可能会遇到Sequence失效的问题。这种情况通常发生在数据迁移后,原有的Sequence不再与表中的最大值相匹配,导致新记录插入时出现ID冲突或者跳号的情况。为了解决这个问题,我们需要...