oracle - 使用 eclipseLink 和 oracle db 时序列不存在异常

标签 oracle jpa sequence eclipselink

我有以下 JPA 实体:

@Entity
@Table(schema = "myschema")
@SequenceGenerator(schema = "myschema", name = "seqGenerator", 
                   sequenceName  = "person_s1", allocationSize = 1)
public class Person {

@Id
@GeneratedValue(generator = "seqGenerator", strategy = GenerationType.AUTO)
private long id;

抛出以下异常:

Call: DROP SEQUENCE myschema.person_s1
Query: DataModifyQuery(sql="DROP SEQUENCE myschema.person_s1")
[EL Warning]: 2010-11-01 17:21:51.051--ServerSession(10605044)--Exception [EclipseLink-    4002] (Eclipse Persistence Services - 2.1.1.v20100817-r8050): 
org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: ORA-02289: sequence does not exist

Error Code: 2289
Call: SELECT myschema.person_s1.NEXTVAL FROM DUAL
Query: ValueReadQuery(sql="SELECT myschema.person_s1.NEXTVAL FROM DUAL")

序列由 EclipseLink 和查询生成:

SELECT myschema.person_s1.NEXTVAL FROM DUAL

直接使用时工作正常...

感谢任何帮助

问候马塞尔

最佳答案

the following exceptions are thrown (...)

这些跟踪是在模式创建期间生成的,当时特定的数据库对象不存在,因此无法删除。 EclipseLink 报告诸如Warning(不是Error)这样的情况,它们可以被忽略(你得到你的序列,对吧?)。

PS:你为什么使用 1 的分配大小,你不想从高/低优化中受益吗?

关于oracle - 使用 eclipseLink 和 oracle db 时序列不存在异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4070951/

相关文章:

sql - Oracle SQL 沿着常规列返回 count(*) 列?

sql - Oracle - 在计数 = 1 的多个列上选择不同

oracle - 在 JSF+EJB 应用程序中捕获 DB 异常

jakarta-ee - 检查JTA事务是否提交成功

google-sheets - 如何在 Google 表格中一起使用 IMPORTXML 和 SEQUENCE

linux - [01000][unixODBC][驱动程序管理器]无法打开 lib '/usr/local/easysoft/oracle/InstantClient112/lib/libsqora.so' : file not found

sql - 计算两个时间戳之间的差异时出现ORA-01873

java - JPA 2.0 CriteriaBuilder 帮助 - 如何选择与特定 where 查询匹配的最大(最大值)值?

numbers - TLS 序列号

javascript - 如何在javascript中从左到右从字符串序列中选择数字整数