java - JPA : Auto Increment ID with Oracle Database

标签 java jpa

我定义了一个具有生成 ID 值的实体,但是当我尝试执行插入时出现此错误:

    10:33:32,202 WARN  [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (default task-8) SQL Error: 2289, SQLState: 42000
    10:33:32,203 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (default task-8) ORA-02289: sequence does not exist
    10:33:32,205 ERROR [org.jboss.as.ejb3.invocation] (default task-8) WFLYEJB0034: EJB Invocation failed on component  javax.ejb.EJBTransactionRolledbackException: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
    Caused by: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
Caused by: java.sql.SQLSyntaxErrorException: ORA-02289: sequence does not exist

实体:

@Entity
@Table(name = "TYPEDEM")
public class TypeDem {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name = "ID")
    private long id;
    @Column(name = "CODE")
    private String code;
    @Column(name = "LABEL")
  ..
}

类别:

@Override
    public TypeDem save(TypeDem typeDem) {
        entityManager.persist(typeDem);
        return typeOfDemand;
    }

在调试中,我看到 id 的值为空

最佳答案

身份生成器

它用于 Sybase、My SQL、MS SQL Server、DB2 和 HypersonicSQL,以支持 id 列。返回的id类型为short、int或long。

IDENTITY 类型(包含在 SQL:2003 标准中)受以下支持:

SQL 服务器 MySQL(自动增量) 数据库2 HSQL数据库 IDENTITY 生成器允许整数/bigint 列根据需要自动递增。增量过程发生在当前正在运行的事务之外,因此回滚可能最终会丢弃已经分配的值(可能会发生值间隙)。

对于Oracle,请使用以下代码@GenerateValue(strategy=GenerationType.AUTO)

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "ID")

关于java - JPA : Auto Increment ID with Oracle Database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45670510/

相关文章:

java - JPA 中缺少列,即使存在

java - 如何在 Spring MVC 中使用 Hibernate 和 Spring JPA 更新数据

java - 带有 "."(句点)的 Spring Boot JPA Hibernate DB 表名

jpa - Spring Boot 和 FlywayTest 导致 JPA Camel 路由在数据库重置期间抛出异常

java - 将 JPA (EclipseLink) Java 序列化更改为使用 Jackson/json

java - 具有 id 的 jtextfields 行

java - 在Group之上展开Android的ExpandableListView Children

java - 为什么 JUnit 在模拟返回 CompletableFuture 对象的方法调用时未完成

java - 记录时 Crashlytics 崩溃

java - 是否可以在资源包中包含资源包文件