Spring Data JPA 设置字段默认值方式
作者:weixin_42475367
这篇文章主要介绍了Spring Data JPA设置字段默认值方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
Spring Data JPA设置字段默认值
在Column注解中写入以下两个属性,为什么自己查一下文档吧,即可实现字段默认值设置,并顺带解决save方法所生成的sql语句中自动填充字段为null的问题。
默认值无法更新,所以如果想在代码里修改字段默认值,你需要重新建表。
@Column(insertable = false,columnDefinition = "int default 1") private Integer sex; @Column(insertable = false,columnDefinition = "decimal(19,2) DEFAULT 0.00") private BigDecimal accountBalance;//账户余额
columnDefinition = “相当于数据库的creter table DDL 语句”
CREATE TABLE `account_info` ( `id` int(11) NOT NULL AUTO_INCREMENT, 。。。 。。。 `account_balance` decimal(19,2) DEFAULT '0.00', 。。。 。。。 PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
Spring Data JPA设置字段默认值失败
jpa注解设置默认值用到的注解是@Column。但有一个问题就是,如果你已经建立好了表,然后在加上@Column(insertable = false,columnDefinition = “int default 1”)是没有用,因为这个注解只有在建表时才会起作用,也就是说,如果DB中表已经建好,该属性没有必要使用
@Column(columnDefinition=“int default 1”,nullable=false) private int number;
所以最好是在save()或者update()写入时增加逻辑操作
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。