【发布时间】:2022-01-12 00:37:48
【问题描述】:
我有一个 Spring Boot User 类,它总是出现错误“java.sql.SQLException:字段 'id' 没有默认值”。我曾多次尝试在 Java 类和数据库表中提供默认值,但无济于事。而且我也从生成类型=自动和=身份切换,但无济于事。非常感谢您的帮助。这是我的 Java 类和我的数据库表:
package com.ykirby.myfbapp;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.springframework.beans.factory.annotation.Value;
import java.sql.Timestamp;
import java.util.Date;
@Entity // This tells Hibernate to make a table out of this class
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
@Value("#{User.id ?: 0}")
private int id = 12345;
@Column(name = "fbuserid")
private String fbuserid;
@Column(name = "apttime")
@Temporal(TemporalType.TIMESTAMP)
private Date apttime;
@Column(name = "apttitle")
private String apttitle;
@Column(name = "aptaddress")
private String aptaddress;
@Column(name = "aptlonglat")
private String aptlonglat;
@Column(name = "aptdetails")
private String aptdetails;
public String getFbuserid() {
return fbuserid;
}
public void setFbuserid(String fbuserid) {
this.fbuserid = fbuserid;
}
public Date getApttime() {
return apttime;
}
public void setApttime(Date apttime) {
this.apttime = apttime;
}
public String getApttitle() {
return apttitle;
}
public void setApttitle(String apttitle) {
this.apttitle = apttitle;
}
public String getAptaddress() {
return aptaddress;
}
public void setAptaddress(String aptaddress) {
this.aptaddress = aptaddress;
}
public String getAptlonglat() {
return aptlonglat;
}
public void setAptlonglat(String aptlonglat) {
this.aptlonglat = aptlonglat;
}
public String getAptdetails() {
return aptdetails;
}
public void setAptdetails(String aptdetails) {
this.aptdetails = aptdetails;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
【问题讨论】:
-
不要使用
java.sql.Timestamp,而是使用LocalDateTime
标签: spring spring-boot