表字段中有默认值,bean.hbm.xml中怎样设置

时间:2023-02-11 07:10:28
表A中有一个字段followid不允许空,有默认值0
现在系统全部添加的内容followid都使用默认值
a.hbm.xml中应该怎么设置该怎么写
 <property name="cateTypeFollowId" type="java.lang.Integer">
            <column name="CATE_TYPE_FOLLOW_ID"/>
 </property>
自动生成的 not-null="true" 有这个,但加这个,必然不能通过,报错
CATE_TYPE_FOLLOW_ID这行不能为空,求解

8 个解决方案

#1


默认值是SQL 2005中字段设定的

#2


在后面加default="" 

#3


现在我是在service层中写了方法,对于字段进行判断NULL则赋值
既然数据库中设定了默认值,那么应该可以不这么做的吧,求解设定

#4


我试试

#5


引用 2 楼 xiayuqijava 的回复:
在后面加default=""

加default是这样写吗?
 <property name="cateTypeFollowId" type="java.lang.Integer">
            <column name="CATE_TYPE_FOLLOW_ID" not-null="true" default="0"/>
        </property>
还是报错
not-null property references a null or transient value
是不是我设置的问题?integer能这样写吗?

#6


这要在数据库中设默认值吧,再试试看

#7


数据库中默认就行了。  映射文件中不必加要求,插入的时候直接插入null即可

#8


引用 7 楼 xyylove520 的回复:
数据库中默认就行了。 映射文件中不必加要求,插入的时候直接插入null即可

引用 6 楼 xiayuqijava 的回复:
这要在数据库中设默认值吧,再试试看

数据库中设定默认值了,A表 AA,AB,AC3个字段,AA主键自增,AB不允许空,AC不允许空有默认值0
页面传递只有AB数据,那么在创建这个对象时A.AB是有数据的,A.AA是主键自增,问题就在AC,页面传递的值中没有AC,AC在数据库中设定了。但HIBERNATE不认,只要你not-null就无法通过。允许NULL不传值,数据库中也会被添加成NULL,不会是默认值0
DEFAULT的好像用不起来

#1


默认值是SQL 2005中字段设定的

#2


在后面加default="" 

#3


现在我是在service层中写了方法,对于字段进行判断NULL则赋值
既然数据库中设定了默认值,那么应该可以不这么做的吧,求解设定

#4


我试试

#5


引用 2 楼 xiayuqijava 的回复:
在后面加default=""

加default是这样写吗?
 <property name="cateTypeFollowId" type="java.lang.Integer">
            <column name="CATE_TYPE_FOLLOW_ID" not-null="true" default="0"/>
        </property>
还是报错
not-null property references a null or transient value
是不是我设置的问题?integer能这样写吗?

#6


这要在数据库中设默认值吧,再试试看

#7


数据库中默认就行了。  映射文件中不必加要求,插入的时候直接插入null即可

#8


引用 7 楼 xyylove520 的回复:
数据库中默认就行了。 映射文件中不必加要求,插入的时候直接插入null即可

引用 6 楼 xiayuqijava 的回复:
这要在数据库中设默认值吧,再试试看

数据库中设定默认值了,A表 AA,AB,AC3个字段,AA主键自增,AB不允许空,AC不允许空有默认值0
页面传递只有AB数据,那么在创建这个对象时A.AB是有数据的,A.AA是主键自增,问题就在AC,页面传递的值中没有AC,AC在数据库中设定了。但HIBERNATE不认,只要你not-null就无法通过。允许NULL不传值,数据库中也会被添加成NULL,不会是默认值0
DEFAULT的好像用不起来