开发者社区> 问答> 正文

指定 not null DEFAULT '0' 报错 Column 'cbre?400报错

使用mysql  +hibernate

建表语句中指定:

`cbreak` int(11) not null  DEFAULT '0'

表单提交时,没有填这个数据,debug代码,调用hibernate的save之前传入的是null。

可是报错

请问怎么解决

 

展开
收起
爱吃鱼的程序员 2020-06-08 10:41:03 766 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    DDL中设置的默认值不会在你更改表结构时修改你旧记录,so,你要先将旧记录中所有cbreak为null的记录update为0,然后再更新字段的默认值为0

    回复 @Kit_lee:知道怎么用了药放到class标签里。这是可以解决的没有报错了,非常感谢回复 @Kit_lee:<propertyname="cbreak"type="java.lang.Integer"dynamic-insert="true"><columnname="cbreak"/></property>这样吗?报错了回复 @颖辉小居:很多开发规范是不提倡实体类里边设默认值的,因为这样出问题不好DEBUG。先解决问题呗 @Kit_lee回复 @Kit_lee:谢谢,我就直接在实体类里加了默认值解决的。但是感觉这样不太好。回复 @颖辉小居:将实体类中给cbreak加个@DynamicInsert注解,或在hbm.xml映射文件中为该字段加dynamic-insert="true"

    在上面的位置配置增加一个属性  dynamic-insert="true"

    2020-06-08 10:41:17
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Froma single droplet toafull b 立即下载
Semantic Search--Fast Results from Large,Foreign Language Corpora 立即下载
How to Build a Successful Data 立即下载