在调用session.save(obj);的时候hibernate会把实体的所有字段(已映射)的全部插进数据库
使用形如insert into enum_test (name , status) values (? , ?)的sql语句 ,
如果你事先约束status default 'normal' ,这因为有'null'写入(虽然你没有obj.setStatus("xxx")) ,所以
default不起作用 , 这就需要在.hbm.xml文件中设置该字段的insert = "false"
如:<property name="status" column="status" type="string" insert="false"></property>
当你显示的调用setStatus("test");时,hibernate才会insert into enum_test (name , status) values (? , "test")
,否则insert into enum_test (name) values (? ) .
联系客服