Oracle 和 Spring 中的添加序列问题

Problem whit add sequence in Oracle and Spring

我尝试添加新记录时出现此错误

Hibernate:
    select
        STEST_PP_DATA_SEQ.nextval
    from
        dual
2022-04-06 12:53:03.487  WARN 23884 --- [0.1-8082-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 2289, SQLState: 42000
2022-04-06 12:53:03.510 ERROR 23884 --- [0.1-8082-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper   : ORA-02289: sequence does not exist

我的Class

@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity(name = "TEST_PP_DATA")
@SequenceGenerator(name = "STEST_PP_DATA_SEQ", sequenceName = "STEST_PP_DATA_SEQ", initialValue = 1, allocationSize = 1)
public class TestPPData extends AuditableEntity{

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "STEST_PP_DATA_SEQ")
@Column(name = "ID", nullable = false)

这是我将序列添加到我的数据库的方式

CREATE SEQUENCE STEST_PP_DATA_SEQ INCREMENT BY 1 START WITH 1 NOMAXVALUE MINVALUE 1 NOCYCLE NOCACHE NOORDER

您可能需要完全限定名称。您能否尝试以下查询来检索所有者:

SELECT owner, status
  FROM All_Objects
 WHERE object_type = 'SEQUENCE'
   AND object_name = 'STEST_PP_DATA_SEQ';

然后使用序列为:

select <OWNER>.STEST_PP_DATA_SEQ.nextval
  from dual;

如果第一个查询没有 return 任何内容或状态与 VALID 不同,那么您的序列创建有问题。