2017-05-31 91 views
0
使用

数据库是的Oracle 11gORA-02289:序列不存在 - 使用Spring数据JPA和Spring启动时

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") 

春天JPA配置如下:

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

也许应用程序的数据库用户无法访问该序列。 – Patrick

+0

@Patrick正在用sql developer在同一个用户执行命令 –

+0

我只能猜到。猜测1:您将'spring.jpa.hibernate.use-new-id-generator-mappings = true'设置为true。但是你不使用新的。如果你删除这个属性会发生什么?猜测2:将您的Schemaname也设置为课程级别的实体。猜测3:对'name'和'generator'也使用'sequenceName = COL_SQE'。 – Patrick

回答

0

请检查您正在使用的用户具有读/写权限

0

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