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

2022-01-24 0 401
目录

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

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;

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

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

:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可, 转载请附上原文出处链接。
1、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务!
2、本站提供的模板、软件工具等其他资源,均不包含技术服务,请大家谅解!
3、本站提供的资源仅供下载者参考学习,请勿用于任何商业用途,请24小时内删除!
4、如需商用,请购买正版,由于未及时购买正版发生的侵权行为,与本站无关。
5、本站部分资源存放于百度网盘或其他网盘中,请提前注册好百度网盘账号,下载安装百度网盘客户端或其他网盘客户端进行下载;
6、本站部分资源文件是经压缩后的,请下载后安装解压软件,推荐使用WinRAR和7-Zip解压软件。
7、如果本站提供的资源侵犯到了您的权益,请邮件联系: 442469558@qq.com 进行处理!

猪小侠源码-最新源码下载平台 Java教程 JPA默认值设置没有效果的解决 http://www.20zxx.cn/297230/xuexijiaocheng/javajc.html

猪小侠源码,优质资源分享网

常见问题
  • 本站所有资源版权均属于原作者所有,均只能用于参考学习,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,建议提前注册好百度网盘账号,使用百度网盘客户端下载
查看详情

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务