目录
问题:默认值设置没有效果
springboot项目的JPA数据库表的类添加默认值,有2种方法
1、@Column(columnDefinition = \"varchar(35) default ‘12345‘ \")
2、@ColumnDefault(“12345”)
要求:设置img字段默认值为/imgs/defunct.png
依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.20</version> </dependency>
映射类
@Data @NoArgsConstructor @AllArgsConstructor @DynamicInsert @DynamicUpdate @Entity(name = \"tbl_user\") public class UserInfo { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @ColumnDefault(\"\\\\imgs\\\\defunct.png\") private String img; @ColumnDefault(\"0\") private Integer studyBegin; }
数据库设计表字段
只有studyBegin默认值设置为0,img的默认值设置不成功。
解决办法
把
@ColumnDefault(\"/imgs/defunct.png\")
改为
@Column(columnDefinition = “varchar(255) default ‘/imgs/defunct.png\'”)
效果
JPA为字段设置默认值
在使用JPA时,如果需要为属性设置默认值,很自然的,你可能会想到用下面的方式。
@Column(name=\"state\",columnDefinition=\"tinyint default 0\") private Integer state=0;
但很不幸的是,这种方案有时候并不可行,原因在于columnDefinition是在创建表的时候使用的,如果你的表不是自动生成的。
那我们又需要为属性添加默认值,该怎么办呢,其实很简单,就直接为属性赋值就可以了。
private Integer state=0;
有时候,看起来很复杂的问题,其实换个角度思考,其实就会变得很简单。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
做猪小侠源码的代理,提供一站式服务
如果你不懂得搭建网站或者服务器,小程序,源码之类的怎么办? 第一通过本站学习各种互联网的技术 第二就是联系客服,我帮帮你搭建(当然要收取部分的费用) 第三成为我们的代理,我们提供整套的服务。