如果在資料表中設定了乙個欄位的預設值(比如說預設當前日期之類的),並且該字段又不允許為空。如果是用eclipse中的反向工程對該資料生成的pojo類和hbm.xml對映檔案,這時應該要修改對映檔案中的兩個地方才能正常使用資料庫中的預設值。
一是將dynamic-insert設定為true
二是將對應欄位的屬性設定not-null為false
比如: schema="dbo" catalog="databasename" dynamic-insert="true" dynamic-update="true">
not-null="false" />
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語句的執行時間,提高程式的執行效率.
Postgre資料庫中Hibernate主鍵配置
postgre資料庫表中,使用serial自增型字段作為資料表的主鍵時,hibernate在插入資料時會報 的異常。得知錯誤在 sql select nextval hibernate sequence 從提示可知得到hibernate sequence的下乙個值失敗,原來是資料庫中不存在hiber...
在Winform開發框架中實現對資料庫的加密支援
由於不想引入太多這些額外的模組,或者為了簡化客戶端的配置考慮,直接在enterpriselibrary模組內部對資料庫連線字串,增加密碼部分,也是乙個有效的方法,本文通過介紹這種方式,實現對加密access資料庫連線字串的 處理,並能順利訪問帶密碼的access資料庫。如果要加密的是access資料...
Hibernate 查詢資料庫中的資料
1.criteria介紹 criteria與session繫結,其生命週期跟隨著session結束而結束,使用criteria時進行查詢時,每次都要於執行時期動態建立物件,並加入各種查詢條件,隨著session的 criteria也跟著 org.hibernate.criteria實際上是個條件附加...