问题描述:MySQL数据库建表时对于某个字段设置了默认值,但是使用Spring Data Jpa的save后默认值没有生效。MySQL数据库中构建的用户表表结构如下所示:
DROP TABLE IF EXISTS USER;CREATE TABLE USER(`id` INT NOT NULL AUTO_INCREMENT COMMENT 主键ID,`name` VARCHAR(25) NOT NULL COMMENT 姓名,`address` VARCHAR(25) DEFAULT 北京市东城区王府井 COMMENT 住址,PRIMARY KEY (`id`)) COMMENT=用户表;
给address字段设置了默认值为“北京市东城区王府井”
解决方法:在实体类的address的Column注解中显式设置insertable=false
import lombok.Data;import javax.persistence.*;import java.io.Serializable;import java.math.BigDecimal;import java.util.Date;@Data@Entity@Table(name = "user")public class User{@Id@GeneratedValue(strategy = GenerationType.IDENTITY)//主键idprivate Integer id;//姓名