有时候我们在创建mysql的表的时候我们会设置某些字段为非空,并且为这些字段设置默认值
但是我们有时候会发现为什么有时候还是会报xxx can not be null
这时候我们可能会觉得我们是不是数据库建表语句有问题,这就可能会浪费很多时间去做了一些无用功!
其实我们在利用有些框架的时候会有这些坑,如:JPA-save方法,他会insert所有的值,并且没有的值也是会传null,这时候就会导致我们报错,或者默认值失效
如对象student中三个属性,id,name,age 如果我们用jpa的save方法他执行的sql就是insert into student(name,age)values(?,?)
但是如果我们只传了一个name,那么上面的方法就会将age的值赋为null传过去
而我们要的操作是 insert into student(name)values(?)不要的值就不要传了,这样mysql的默认值就不会失效了 ^v^
原文:https://www.cnblogs.com/sutimeyl/p/12573650.html