序列不存在异常使用eclipseLink和oracle db
我有以下JPA实体:序列不存在异常使用eclipseLink和oracle db,oracle,jpa,sequence,eclipselink,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",
@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
直接使用时效果很好
谢谢你的帮助
向马塞尔问好我知道这听起来很傻,但不管怎么说,它就在这里
@Entity
@Table(schema = "myschema")
public class Person {
@Id
@SequenceGenerator(schema = "myschema", name = "seqGenerator", sequenceName = "person_s1", allocationSize = 1)
@GeneratedValue(generator = "seqGenerator", strategy = GenerationType.AUTO)
private Long id;
}
将引发以下异常(…)
这些跟踪是在模式创建期间生成的,此时特定的数据库对象不存在,因此无法删除。EclipseLink报告诸如警告
(不是错误
)之类的情况,它们可以被忽略(你得到了你的序列,对吧?)
PS:为什么要使用1的分配大小,难道不想从高/低优化中获益吗?Merci Beaucup Pascal。什么是高/低优化?你能给我写封信吗?MarcelFWIW我已经在EclipseLink中将它作为一个bug记录了下来:。称之为bug的动机在bug报告中。