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

这篇文章主要介绍了JPA默认值设置没有效果的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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

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

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

2@ColumnDefault(“12345”)

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

依赖

  org.springframework.bootspring-boot-starter-data-jpa mysqlmysql-connector-java5.1.46 org.projectlomboklombok1.16.20

映射类

 @Data @NoArgsConstructor @AllArgsConstructor @DynamicInsert @DynamicUpdate @Entity(name = "tbl_user") public class UserInfo { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @ColumnDefault("\\imgs\\defunct.png-600") private String img; @ColumnDefault("0") private Integer studyBegin; } 

数据库设计表字段

在这里插入图片描述

只有studyBegin默认值设置为0,img的默认值设置不成功。

解决办法

 @ColumnDefault("/imgs/defunct.png-600")

改为

 @Column(columnDefinition = “varchar(255) default ‘/imgs/defunct.png-600'”)

效果

在这里插入图片描述

JPA为字段设置默认值

在使用JPA时,如果需要为属性设置默认值,很自然的,你可能会想到用下面的方式。

 @Column(name="state",columnDefinition="tinyint default 0") private Integer state=0;

但很不幸的是,这种方案有时候并不可行,原因在于columnDefinition是在创建表的时候使用的,如果你的表不是自动生成的。

那我们又需要为属性添加默认值,该怎么办呢,其实很简单,就直接为属性赋值就可以了。

 private Integer state=0;

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持0133技术站。

以上就是JPA默认值设置没有效果的解决的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java