繁体   English   中英

ORA-02289: 序列不存在 - 当使用 Spring 数据 JPA 和 Spring 启动时

[英]ORA-02289: sequence does not exist - when using Spring Data JPA with Spring boot

使用的数据库是 Oracle 11g

 Hibernate: select schemaname.col_sqe.nextval from dual
17:06:58.603 [WARN ] -org.hibernate.engine.jdbc.spi.SqlExceptionHelper:SQL Error: 2289, SQLState: 42000
17:06:58.618 [ERROR] -org.hibernate.engine.jdbc.spi.SqlExceptionHelper:ORA-02289: sequence does not exist

该序列存在于数据库的指定模式中,并且当通过 sql 开发人员执行时,相同的查询返回正确的值。

自动生成配置如下:

@Id
    @SequenceGenerator(name = "COL_GEN", sequenceName = "COL_SQE",schema="SCHEMANAME")
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "COL_GEN")
    @Column(name = "COL_ID")

Spring JPA 配置如下:

spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
spring.jpa.hibernate.use-new-id-generator-mappings=true
spring.jpa.show-sql=true

请检查您使用的用户是否具有读/写权限

检查读/写权限,并检查数据库中的日志并验证序列是否已执行

使用Oracle数据库时,需要手动创建序列。 在数据库连接中使用此代码:

create sequence YOUR_SEQUENCE_TABLE_NAME start with YOUR_START_VALUE;

即使已明确包含模式,前缀为序列名称修复问题

@SequenceGenerator(schema = "schemaname", sequenceName = "schemaname.sequencename")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM