JPA默认值设置没有效果的解决
程序员文章站
2022-03-10 13:28:12
目录问题:默认值设置没有效果解决办法jpa为字段设置默认值问题:默认值设置没有效果springboot项目的jpa数据库表的类添加默认值,有2种方法1、@column(columndefinition...
问题:默认值设置没有效果
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;
有时候,看起来很复杂的问题,其实换个角度思考,其实就会变得很简单。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
推荐阅读
-
在没有设置密码的情况下连接共享打印机让输入密码该怎么解决?
-
解决 Flutter showBottomSheet 设置高度没有作用的?
-
pr效果控件没有关键帧怎么办? pr效果控件不显示关键的解决办法
-
解决JPA save()方法null值覆盖掉mysql预设的默认值问题
-
记录一个使用Spring Data JPA设置默认值的问题
-
input标签中&:class=”{active=isActive}”的Boolean值没有效果的解决方法。
-
JPA默认值设置没有效果的解决
-
怎么解决“没有发现 PHP 的扩展设置mbstring. ,试了网上的几种方法,没有多大用
-
怎么解决“没有发现 PHP 的扩展设置mbstring. ,试了网上的几种方法,没有多大用
-
如何解决“没有发现 PHP 的扩展设置mbstring. ,试了网上的几种方法,没有多大用