Java Spring引导:实体字段'';不';持久化时没有默认值
下面是我的警报实体类,我正在自动生成ID。但在保存时,我得到的错误是Spring引导:实体字段“u_id”没有默认值。我也尝试了策略=顺序/自动,结果相同Java Spring引导:实体字段'';不';持久化时没有默认值,java,hibernate,spring-boot,jpa,spring-data-jpa,Java,Hibernate,Spring Boot,Jpa,Spring Data Jpa,下面是我的警报实体类,我正在自动生成ID。但在保存时,我得到的错误是Spring引导:实体字段“u_id”没有默认值。我也尝试了策略=顺序/自动,结果相同 import javax.persistence.*; @Entity public class Alert { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "u_id") private long u_
import javax.persistence.*;
@Entity
public class Alert {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "u_id")
private long u_id = 1;
@Embedded
private Reading reading;
@Column(insertable = false, updatable = false)
String vin;
private String priority;
public long getU_id() {
return u_id;
}
public void setU_id(long u_id) {
this.u_id = u_id;
}
public String getPriority() {
return priority;
}
public void setPriority(String priority) {
this.priority = priority;
}
public Reading getVehicleReading() {
return reading;
}
public void setVehicleReading(Reading vehicleReading) {
this.reading = vehicleReading;
this.vin = vehicleReading.getVin();
}
}
提供如下所示的另一个注释解决了这个问题
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(columnDefinition = "serial")
是
private long u_id=1中的=1
代码>输入错误?这将使此对象的所有新实例具有相同的ID,这可能会导致在您要执行插入的位置进行无意更新。不完全是这样,它将1设置为默认值。我现在将代码更改为@Id@GeneratedValue(strategy=GenerationType.AUTO)@Column(name=“u_Id”,columnDefinition=“NUMBER(10)默认值“1”)private int u_Id;现在,无论以哪种方式执行DDL,我都会遇到一个错误,这听起来可能是数据库模式的问题。您是使用Hibernate生成架构还是手动生成架构?您可能需要在数据库服务器上检查该列是否设置为自动递增或标识列(取决于您使用的数据库)@aelfric5578非常感谢!4个小时以来一直在努力解决这个问题。由于某种原因,未设置自动增量。我还必须提供另一个注释@GeneratedValue(strategy=GenerationType.IDENTITY)@Column(columnDefinition=“serial”)。