java – JPA(Hibernate):“ORA-02289序列不存在”,但确实如此

我正在使用JPA实体.

我创建了一个这样的新的:

@Entity
public class Entity {
    @Id
    @GeneratedValue(generator = "Entity_Sequence", strategy = GenerationType.SEQUENCE)
    @SequenceGenerator(name = "Entity_Sequence", sequenceName = "Entity_Seq")
    private Long id;

    // ... other fields
}

我用来创建数据库对象的生成的SQL:

CREATE SEQUENCE ENTITY_SEQ START WITH 1 INCREMENT BY 50;

CREATE TABLE ENTITY (
  ID     NUMBER(19, 0) NOT NULL,
  -- ... other fields
  PRIMARY KEY (ID)
);

现在,我能够从SQL Developer和IntelliJ查询序列的nextval.但是当我尝试从代码中持久保存实体时,Hibernate会抛出以下异常:

15:21:11,022 INFO  [stdout] (EJB default - 2) Hibernate: select ENTITY_SEQ.nextval from dual
15:21:11,037 WARN  [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (EJB default - 2) SQL Error: 2289, SQLState: 42000
15:21:11,037 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (EJB default - 2) ORA-02289: Sequence ist nicht vorhanden.

(“Sequence ist nicht vorhanden”翻译为“序列不存在”.)

为什么Hibernate不能在我找到序列的时候?

编辑1(12-01):
我尝试了建议的answer from Olivier,但错误仍然是一样的.

编辑2(12-01):
由于Olivier删除了他的答案,他建议我将@SequenceGenerator注释移到类中.

最佳答案 我发现错误:这是我的本地设置,所以没有什么有用的告诉你,只需检查你的设置.

我在服务器实际上没有使用的文件中“配置”我的服务器,因此没有显示效果.

点赞