错误提示:对实体做save动作时,报由java.sql.SQLException: ORA-00972: 标识符过长,引起的could not get next sequence value的错误提示
问题产生环境:hibernate配置文件如下
<hibernate-mapping default-cascade="save-update">
<class name="com.milesup.data.extra.MokaRechargeMerchantPrePay" table="MOKA_RECHARGE_MERCHANT_PRE_PAY" dynamic-insert="false" dynamic-update="false">
<id name="id" type="int" unsaved-value="0">
<column name="ID" sql-type="NUMBER(10)"/>
<generator class="sequence">
<param name="sequence">MOKA_RECHARGE_MERCHANT_PRE_PAY</param> <!--修改前的序列值--> 修改后的序列值<!--MOKA_RC_MT_PRE_PAY_SEQ-->
</generator>
</id>
<property name="merchantId" type="int">
<column name="MERCHANT_ID" not-null="false" unique="false" sql-type="NUMBER(10)"/>
</property>
。。。。。。。。
</class>
</hibernate-mapping>
问题产生原因:oracle数据库规定序列的名称、表名称必须小于30个字符。由于原来序列的名称MOKA_RECHARGE_MERCHANT_PRE_PAY已经大于30个字符,所以在再做save动作的时候,会报
由java.sql.SQLException: ORA-00972: 标识符过长,引起的could not get next sequence value问题。
解决办法:将原来的序列的名称MOKA_RECHARGE_MERCHANT_PRE_PAY,修改为MOKA_RC_MT_PRE_PAY_SEQ小于30个字符,然后重新生成对应的数据库表结构即可。
注意:
1:如果重新修改hibernate配置文件后,没有重新生成数据库表结果,直接做save动作的话,那就等着报 ORA-02289: 序列不存在这个异常吧。
2:如果该表之前通过sql直接insert过2条数据,而且经过上面的修改后是直接修改该表,注意是修改而不是删除该表重新创建该表,那么通过hibernate在做save这个动作的时候会报
ORA-00001: 违反唯一约束条件 (POINT.SYS_C006384)这个错误,为什么呢?因为你的序列是重新开始的,而开始之前,你已经通过手动插入2条数据了,怎么解决呢?多做几次save的动作
直到大于数据库表中已经存在的序列id即可。
分享到:
相关推荐
### 故障解决:OGG-00446 Could not find archived log for sequence #### 一、背景与概述 在数据库同步过程中,Oracle GoldenGate (OGG) 是一种广泛使用的工具,它能够帮助实现不同数据库之间的高效同步。然而,...
然而,在长时间使用过程中,由于各种原因可能会导致J-LINK内部的固件损坏或丢失,进而影响其正常使用。本文将详细介绍如何为J-LINK V8设备重烧固件,以解决因固件问题导致的设备故障。 #### 二、准备工作 1. **...
Oracle中的Sequence是数据库管理系统提供的一种机制,用于生成序列化的整数,通常用于主键或唯一标识符,确保数据的唯一性和有序性。在Oracle中,Sequence不同于其他数据库系统的自增字段,例如SQL Server中的`...
3. Sequence 标识符生成器:主要用于像 Oracle 这样的数据库系统,它们支持序列(sequence)的概念。Hibernate 通过调用数据库的序列来生成唯一的标识符。这种方法同样依赖于数据库特性,但在支持序列的数据库中提供...
本资料“Template for Step-Step Next Sequence.rar”提供了一个详细的欧母龙PLC编程示例,旨在帮助初学者理解和掌握步进序列控制的编程技巧。 PLC程序设计的核心是逻辑控制,其中步进序列控制是一种常见的编程模式...
通过以上介绍可以看出,在Oracle数据库中,`sequence`机制是非常强大的工具,能够帮助我们高效地管理和分配唯一的标识符。合理配置和使用`sequence`不仅可以提高数据库操作的效率,还能确保数据的一致性和完整性。...
在编程领域,"The Next"通常指的是找到一个数列的下一个元素或按照特定规律生成序列。根据提供的描述,我们面临的任务是确定一个数列的规律并编写程序来生成数列的下一个值。在这个例子中,数列是393、163、67、29、...
在IT行业中,"Number Sequence"通常指的是在特定系统或应用中用于生成自动递增或递减的数字序列。这些序列可以用于唯一标识记录、订单号、发票号等,确保数据的唯一性和可追踪性。在Microsoft Dynamics AX(现称为...
### 错误二:org.hibernate.exception.SQLGrammarException: could not get next sequence value 此错误与Hibernate框架相关,当尝试获取数据库中的下一个序列值时出现语法错误。这通常是因为配置不当或数据库查询...
其中,sequence_name 是 SEQUENCE 的名称,increment 是每次增加的值,start_value 是起始值,max_value 是最大值,cache_size 是缓存大小。 例如,创建一个名为 S_S_DEPART 的 SEQUENCE,初始值为 1,增加值为 1,...
《序列图绘制工具sequence-diagram-js的深度解析与应用》 序列图,作为一种重要的系统建模工具,广泛应用于软件设计和开发中,它清晰地展示了系统内各对象间交互的顺序。sequence-diagram-js是一个基于JavaScript的...
《Sequence to Sequence Learning with Neural Networks》是一篇由Ilya Sutskever, Oriol Vinyals和Quoc V. Le共同撰写的论文,三位作者都来自Google公司。这篇论文在自然语言处理领域有着重要的影响,特别是在序列...
### Oracle Sequence 重置(失效恢复) 在进行Oracle数据库移植或维护时,可能会遇到Sequence失效的问题。这种情况通常发生在数据迁移后,原有的Sequence不再与表中的最大值相匹配,导致新记录插入时出现ID冲突或者...
通过使用 `Sequence`,可以确保每次插入记录时都能获得一个唯一的标识符。 #### 二、创建 Sequence 创建 `Sequence` 需要定义其起始值、增量以及最大值等属性。下面是一个创建 `Sequence` 的示例: ```sql CREATE...
在Activiti中,连线(SequenceFlow)是流程图中的重要元素,用于定义活动之间的转移路径。本篇学习笔记将深入探讨SequenceFlow的概念、作用以及如何在流程设计中使用。 一、SequenceFlow简介 SequenceFlow 是 ...
### Sequence简单介绍 #### 序列(Sequence)概念解析及应用 序列(Sequence)是一种用于生成一系列数值的数据对象,常用于数据库系统中为主键提供自动递增的功能。本篇文章主要聚焦于Oracle数据库与SQL Server...
安装 meteor add stivaugoin: fluid - counter用法getNextSequence 增量计数器 var counter1 = getNextSequence ( 'counterName' ) ;var counter2 = getNextSequence ( 'counterName' ) ;console . log ( counter1 )...
SequenceDiagram-3.0.5.zip 是一个包含 Sequence Diagram 相关工具或资源的压缩包文件,主要用于绘制序列图,这是UML(统一建模语言)中的一种图表,用于描述对象之间的交互和消息传递顺序。在软件开发过程中,序列...
Bowtie是一款在生物信息学领域广泛应用的Next Generation Sequence (NGS) 对齐软件,专门设计用于在Windows操作系统上高效地将高通量测序数据与基因组进行比对。NGS技术使得科学家们能够快速获取大量DNA序列信息,但...
机器学习之sequence to sequence learning。(Sequence Generation-----Hung-yi Lee 李宏毅.ppt)