數據庫中一個字段的默認值設爲0,當用hibernate插入數據時,沒有對該字段進行操做,結果該字段竟然不是0,而是空。後來google了一下,發現應該在.hbm.xml文件中添加一些參數定義(示例中的紅色部分),具體以下:數據庫
dynamic-insert="true" dynamic-update="true">性能
下面是有關其它配置的說明google
Hibernate容許咱們在映射文件裏控制insert和update語句的內容.好比在映射文件中
1)元素 insert屬性:設置爲false,在insert語句中不包含這個字段,表示永遠不會被插入,默認true
2)元素 update屬性:設置爲false,在update語句中不包含這個字段,表示永遠不會被修改,默認true
3)元素 mutable屬性:設置爲false就是把全部的元素的update屬性設置爲了false,說明這個對象不會被更新,默認true
4)元素 dynamic-insert屬性:設置爲true,表示insert對象的時候,生成動態的insert語句,若是這個字段的值是null就不會加入到insert語句當中.默認false
5)元素 dynamic-update屬性,設置爲true,表示update對象的時候,生成動態的update語句,若是這個字段的值是null就不會被加入到update語句中,默認false
6)元素 dynamic-insert屬性:設置爲true,表示把全部的元素的dynamic-insert屬性設置爲true,默認false
7)元素 dynamic-update屬性:設置爲true,表示把全部的元素的dynamic-update屬性設置爲true,默認falsespa
Hibernate生成動態SQL語句的消耗的系統資源(好比CPU,內存等)是很小的,因此不會影響到系統的性能,若是表中包含N多字段,建議把 dynamic-update屬性和insert屬性設置爲true,這樣在插入和修改數據的時候,語句中只包括要插入或者修改的字段.能夠節省SQL語 句的執行時間,提升程序的運行效率hibernate