Springboot2 JPA使用DB默认序列作为Id



我使用SpringBoot2创建微服务。我为实体使用的数据库表是用主键在DB级别的默认序列定义的。像下面,

CREATE TABLE EMPLOYEE (
EMP_ID INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1 .....) NOT NULL,
EMP_NAME VARCHAR2(100 BYTE))

我希望spring启动数据jpa对emp id

使用上述默认序列
@Entity
@Table(name="EMPLOYEE")
public class Employee {
@Id
@Column(name = "EMP_ID", insertable = false)   
private Integer empId;
@Column(name = "EMP_NAME", insertable = false) 
private String empName
}

我希望从Create Table查询中添加的默认序列生成empId。我尝试了GeneratedValue中的所有策略,但它不起作用。我只剩下创建显式序列并在序列生成器中使用它。

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "EMP_ID", insertable = false)   
private Integer empId;

请尝试下面的东西,它应该像你期望的那样工作。

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(nullable = false, columnDefinition = "INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL")
private Integer empId;

最新更新