通过hibernate创建oracle序列

时间:2018-01-19 10:47:50

标签: spring hibernate spring-boot oracle12c

我正在尝试在Oracle中创建一个序列,我正在使用默认情况下具有hibernate的Spring启动。我有完整的权力来创建和删除序列。 但每次我得到例外:java.sql.SQLSyntaxErrorException: ORA-02289: sequence does not exist

@GeneratedValue(generator="data_cat", strategy=GenerationType.SEQUENCE)
@SequenceGenerator(allocationSize=1, initialValue=100, name="data_cat", sequenceName="BLAH_SCH.DATA_CAT")
@Id
private long id;

以下是我的application.properties

spring.jpa.hibernate.ddl-auto=create 
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.Oracle10gDialect

我相信它应该通过对数据库的任何调用来创建。请告诉我可能出现的问题。

然而,当我在oracle中运行sql commant时,我的序列被创建了。

CREATE SEQUENCE "BLAH_SCH"."DATA_CAT";

2 个答案:

答案 0 :(得分:0)

我不知道这是否能解决您的问题,但是:

您是否可以尝试在Oracle序列中定义初始值,如CREATE SEQUENCE DATA_CAT START WITH 100 INCREMENT BY 1;

答案 1 :(得分:0)

问题是一个空间。是的,这个属性之后有一个空间

" spring.jpa.hibernate.ddl-auto = create"

一旦我检查了日志,我就知道这个属性没有被选中。删除此空间使其工作。