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

 更新时间:2021年11月23日 11:20:58   作者:玲~~  
这篇文章主要介绍了JPA默认值设置没有效果的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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

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;

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

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

相关文章

  • java微信开发第二步 获取消息和回复消息

    java微信开发第二步 获取消息和回复消息

    这篇文章主要为大家分享java微信开发的第二步,如何获取消息和回复消息,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • 关于SpringCloud的微服务结构及微服务远程调用

    关于SpringCloud的微服务结构及微服务远程调用

    Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量,需要的朋友可以参考下
    2023-05-05
  • 浅谈Spring单例Bean与单例模式的区别

    浅谈Spring单例Bean与单例模式的区别

    这篇文章主要介绍了浅谈Spring单例Bean与单例模式的区别,具有一定借鉴价值,需要的朋友可以参考下
    2017-12-12
  • Spring Boot + Jpa(Hibernate) 架构基本配置详解

    Spring Boot + Jpa(Hibernate) 架构基本配置详解

    本篇文章主要介绍了Spring Boot + Jpa(Hibernate) 架构基本配置详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • IntelliJ IDEA Tomcat控制台中文乱码问题的四种解决方案

    IntelliJ IDEA Tomcat控制台中文乱码问题的四种解决方案

    这篇文章主要给大家分享了4种方法完美解决IntelliJ IDEA Tomcat控制台中文乱码问题,文中有详细的图文介绍,对我们的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-08-08
  • java判断今天,昨天,前天,不能用秒间隔的简单实例

    java判断今天,昨天,前天,不能用秒间隔的简单实例

    下面小编就为大家带来一篇java判断今天,昨天,前天,不能用秒间隔的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • SpringBoot整合Spring Boot Admin实现服务监控的方法

    SpringBoot整合Spring Boot Admin实现服务监控的方法

    这篇文章主要介绍了SpringBoot整合Spring Boot Admin实现服务监控,内容包括Server端服务开发,Client端服务开发其中Spring Boot Admin还可以对其监控的服务提供告警功能,如服务宕机时,可以及时以邮件方式通知运维人员,感兴趣的朋友跟随小编一起看看吧
    2022-03-03
  • SpringBoot+Vue项目新手快速入门指南

    SpringBoot+Vue项目新手快速入门指南

    最近刚刚做了一个基于vue+springboot的系统,于是基于这点,对遇到的一些问题进行一些配置的汇总,下面这篇文章主要给大家介绍了关于SpringBoot+Vue项目新手快速入门的相关资料,需要的朋友可以参考下
    2022-06-06
  • springboot Rabbit MQ topic 配置文件绑定队列和交换机的实现方法

    springboot Rabbit MQ topic 配置文件绑定队列和交换机的

    本文详细讲解了在SpringBoot中使用RabbitMQ进行队列与交换机的绑定方法,包括创建交换机、队列和绑定它们的步骤,以及如何发送和接收消息,适用于开发高并发系统,如秒杀系统等
    2024-09-09
  • springboot整合mqtt实现消息订阅和推送功能

    springboot整合mqtt实现消息订阅和推送功能

    mica-mqtt-client-spring-boot-starter是一个方便、高效、可靠的MQTT客户端启动器,适用于需要使用MQTT协议进行消息通信的Spring Boot应用程序,这篇文章主要介绍了springboot整合mqtt实现消息订阅和推送功能,需要的朋友可以参考下
    2024-02-02

最新评论