有時候我們在創建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^
jpa想要動態傳值怎么辦?
@DynamicInsert
@DynamicUpdate(這個用於更新是沒有用的,可以用sql更新)
這兩個注解就可以搞定了,一開始我還想着重寫save方法,但是網上的那些真的是答案太亂,而且親測沒用,我是新增,網上重寫的新增不還是一樣的,前面加個判斷id,醉了