hibernate使用資料庫中表字段的預設值

2021-08-26 17:31:07 字數 1179 閱讀 7861

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,預設false

hibernate生成動態sql語句的消耗的系統資源(比如cpu,記憶體等)是很小的,所以不會影響到系統的效能,如果表中包含n多欄位,建議把dynamic-update屬性和insert屬性設定為true,這樣在插入和修改資料的時候,語句中只包括要插入或者修改的字段.可以節省sql語句的執行時間,提高程式的執行效率.

問題描述:

hibernate技術中對應資料庫中每乙個表,都會有乙個對映檔案與之對應,此檔案描述資料庫表中每乙個欄位的型別、長度、是否可空等屬性。在進行表中記錄的插入(更新)操作時,hibernate會根據對映檔案中的描述自動生成乙個包含所有欄位的插入(更新)sql語句,此時如果對映檔案中某字段的值為空(null)而其在資料庫表中定義的預設值不為空,hibernate會將空值插入到表中,而不會使用此字段的預設值。

解決方法:

在hibernate對映檔案對資料庫表的描述中,加入dynamic-insert="true"和 dynamic-update="true" 語句,這時hibernate在進行插入(更新)操作時,只會為那些值不為空的字段賦值,而值為空的字段就會使用資料庫表中定義的預設值了。

Postgre資料庫中Hibernate主鍵配置

postgre資料庫表中,使用serial自增型字段作為資料表的主鍵時,hibernate在插入資料時會報 的異常。得知錯誤在 sql select nextval hibernate sequence 從提示可知得到hibernate sequence的下乙個值失敗,原來是資料庫中不存在hiber...

Hibernate 查詢資料庫中的資料

1.criteria介紹 criteria與session繫結,其生命週期跟隨著session結束而結束,使用criteria時進行查詢時,每次都要於執行時期動態建立物件,並加入各種查詢條件,隨著session的 criteria也跟著 org.hibernate.criteria實際上是個條件附加...

hibernate資料庫連線

size 12 昨天學習hibernate一天,使用sqlserver2000資料庫,今天早上嘗試了一下mysql資料庫,發現大同小異,不過還是記在這裡吧,好記性不如個爛鍵盤 size color blue 使用mysql資料庫時候的hibernate.cfg.xml檔案內容 color color...