【问题标题】:ORA-02289: sequence does not exist Spring bootORA-02289: 序列不存在 Spring boot
【发布时间】:2021-09-03 14:54:17
【问题描述】:

我试图在我的 intelliJ spring boot jpa 应用程序中创建一个用户,但是发生了这个错误

Servlet.service() 用于 servlet [dispatcherServlet] 的上下文中的路径 [] 抛出异常 [请求处理失败;嵌套异常是 javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException:无法提取 ResultSet] 有根本原因

oracle.jdbc.OracleDatabaseException: ORA-02289: 序列不存在

所以我尝试了这个我找到但仍然不起作用的解决方案

 @SequenceGenerator(name = "SEQ_CADASTRO", sequenceName = "SEQ_CADASTRO", allocationSize = 1, initialValue = 1)
    @GeneratedValue(generator = "SEQ_CADASTRO", strategy = GenerationType.SEQUENCE)

现在在我的应用程序中编写代码

 @Id
    @Column(name = "UTILIZADOR_ID")
    @SequenceGenerator(name = "SEQ_CADASTRO", sequenceName = "SEQ_CADASTRO", allocationSize = 1, initialValue = 1)
    @GeneratedValue(generator = "SEQ_CADASTRO", strategy = GenerationType.SEQUENCE)
    private BigInteger utilizadorId;

这是我创建的Bll

 public static void createUtilizador(SpringWebMVC.s2.DAL.Utilizador  uti){
        if(factory == null)
            factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);

        if (em == null) em = factory.createEntityManager();

        em.getTransaction().begin();
        em.persist(uti);
        em.getTransaction().commit();
    }

【问题讨论】:

  • 你能发布你的 application.properties 吗?

标签: java spring-boot hibernate jpa intellij-idea


【解决方案1】:

您是否在数据库中创建了如下序列? 创建序列 id_seq 增加 1 从 0 开始 最小值 0 最大值 100 不循环 无缓存;

或者您是否在应用程序属性文件中添加了以下属性 spring.jpa.hibernate.ddl-auto = 更新 如果不兴奋,它将在数据库中创建序列。

【讨论】:

  • 请在数据库控制台上执行。从对偶中选择 a_seq.nextval;。检查序列是否兴奋
猜你喜欢
  • 2015-06-30
  • 1970-01-01
  • 2021-09-19
  • 1970-01-01
  • 1970-01-01
  • 2014-08-31
  • 2016-06-01
  • 2018-05-15
  • 1970-01-01
相关资源
最近更新 更多