JPA默认值设置没有效果的解决

网友投稿 1407 2022-11-20

JPA默认值设置没有效果的解决

JPA默认值设置没有效果的解决

目录问题:默认值设置没有效果解决办法JPA为字段设置默认值

问题:默认值设置没有效果

springboot项目的JPA数据库表的类添加默认值,有2种方法

1、@Column(columnDefinition = "varchar(35) default ‘12345‘ ")

2、@ColumnDefault(“12345”)

要求:设置img字段默认值为/imgs/defunct.png

依赖

org.springframework.boot

spring-boot-starter-data-jpa

mysql

mysql-connector-java

5.1.46

org.projectlombok

lombok

1.16.20

映射类

@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;

有时候,看起来很复杂的问题,其实换个角度思考,其实就会变得很简单。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:perf usdt
下一篇:github使用AccessToken登录配置教程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~