0
点赞
收藏
分享

微信扫一扫

为什么数据库字段设置了默认值,使用springdatajpa的save之后默认值没有生效


今天在开发中遇到了一个很有趣的现象, 数据库中, 我给一个字段设置了默认值

为什么数据库字段设置了默认值,使用springdatajpa的save之后默认值没有生效_save默认值不生效

但是经过repository的save方法之后, 实体类中这个字段却没有值。

先不说原因, 我么可以先在数据库里面试一下这两条SQL的效果。

为什么数据库字段设置了默认值,使用springdatajpa的save之后默认值没有生效_数据库_02

执行结果为:

为什么数据库字段设置了默认值,使用springdatajpa的save之后默认值没有生效_save默认值不生效_03

那么好, 我们看一下jpa打印的日志

为什么数据库字段设置了默认值,使用springdatajpa的save之后默认值没有生效_字段_04

salt在这中间, 按照上面sql的执行效果, 默认值是不会生效滴。

那么我们在Entity类上加上这个注解。

为什么数据库字段设置了默认值,使用springdatajpa的save之后默认值没有生效_save默认值不生效_05

看好, 这个默认是true哦。

为什么数据库字段设置了默认值,使用springdatajpa的save之后默认值没有生效_数据库_06

加完之后我们看一下打印的sql。

为什么数据库字段设置了默认值,使用springdatajpa的save之后默认值没有生效_save默认值不生效_07

按照上面SQL执行的逻辑, 数据库里面自然就有数据啦。

为什么数据库字段设置了默认值,使用springdatajpa的save之后默认值没有生效_数据库_08

自己排查的错误,希望对你有帮助。



举报

相关推荐

0 条评论