java - JPA (Hibernate) : "ORA-02289 Sequence does not exist", 但确实如此

标签 java oracle hibernate jpa

我正在使用 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 注释移动到类中。

最佳答案

我发现错误:这是我的本地设置,所以没有什么有用的告诉你,只要检查你的设置。

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

关于java - JPA (Hibernate) : "ORA-02289 Sequence does not exist", 但确实如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47595475/

相关文章:

macos - 使用 FireDac 和 OSX Mavericks 连接到远程 Oracle XE11 数据库

java - entity.merge后如何获取主键

java - 曼宁·斯普林 (Manning Spring),Hibernate 封面图片

spring hibernate事务无法提交

java - 如何在DesignGridLayout库中动态创建JButton值?

java - 在 Spring Web 服务中创建一个新线程

java - 无法在 Oracle 数据源连接中将自动提交值设置为 false

hibernate - 在集成测试期间,Grails hibernate 事件未触发

java - 如何使用java RMI转发消息?

java - Spring 3.2 使用 SimpleJdbcInsert 检索自动生成的 key