千家信息网

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

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇文章主要介绍"JPA默认值设置没有效果怎么解决",在日常操作中,相信很多人在JPA默认值设置没有效果怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"JPA默认
千家信息网最后更新 2024年09月22日JPA默认值设置没有效果怎么解决

这篇文章主要介绍"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;

    到此,关于"JPA默认值设置没有效果怎么解决"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

    0