hibernate 對映檔案配置預設值方法

2021-06-18 08:20:46 字數 2560 閱讀 4555

問題描述:

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

解決方法:

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

這個表引用了另外的一張表。自己任意建立一張表即可。

關鍵是hibernate對映檔案的class處 dynamic-insert="true" dynamic-update="true" 和

property 裡面的

insert="false" update="false"。

兩處都要配置!

標籤:3.1裡面有乙個屬性:update=」true|false」

如果設定為false,則在hibernate的update語句裡面沒有標籤所指明的屬性所對應的字段。

同理,insert=」true|false」

如果設定為false,則在hibernate的insert語句裡面沒有標籤所指明的屬性所對應的字段。

這樣的弊端是無法從表單上填寫資訊了。

建立資料庫表:

/*--20、人才招聘.招聘資訊表

*/create table t_company_position(

id integer(10) primary key auto_increment,

company_name varchar(50) not null ,

position_information varchar(500) not null,

position_type varchar(50) ,

position_name varchar(50) ,

province varchar(10) ,

city varchar(10) ,  

start_date timestamp,

in_date varchar(10) default '長期有效',

dimensions varchar(10) , 

position_number varchar(10) not null default '若干名', 

position_salary varchar(30) not null default '面議', 

position_*** varchar(10) not null default '無',

position_age varchar(10) not null default '無',

education varchar(10) not null default '無',

work_experience varchar(10) not null default '無',

work_way varchar(10) not null default '不限',

position_describe varchar(500) not null default '無',

company_describe varchar(1000) not null default '暫無該公司資訊', 

contact_way varchar(200) not null default '無', 

company_id integer(10) not null , 

constraint company_id_fk foreign key(company_id) references t_company_regedit(id)

);insert="false" update="false" >

not-null="true"/>

insert="false" update="false" >

insert="false" update="false" >

insert="false" update="false" >

insert="false" update="false" >

insert="false" update="false" >

insert="false" update="false" >

insert="false" update="false" >

insert="false" update="false" >

insert="false" update="false" >

insert="false" update="false" >

insert="false" update="false" >

注:insert="false" update="false" 的作用是不對當前字段進行insert和update操作,這樣hibernate就不會在未指明預設列的情況下將資料庫表中預設值字段清空,但同時也會造成無法對此字段插入或更新非預設值。

對映檔案 Hibernate 對映檔案

乙個物件 關係型對映一般定義在 xml 檔案中。對映檔案指示 hibernate 如何將已經定義的類或類組與資料庫中的表對應起來。儘管有些 hibernate 使用者選擇手寫 xml 檔案,但是有很多任務具可以用來給先進的 hibernate 使用者生成對映檔案。這樣的工具包括xdoclet,mid...

Hibernate對映檔案配置屬性解釋

例子 hbm.xml 解釋 標籤主要用於指定持久化類和資料庫表名 name 屬性指定持久化類得全域性路徑 table 屬性指定資料庫表名 class標籤包含乙個,和多個 元素用於持久化類的唯標識與資料庫表的主鍵欄位的對映,通過定義主鍵的生成策略 標籤屬性,用於持久化類的其他屬性和資料表中的非主鍵欄位...

hibernate對映配置檔案詳解

在 hibernate 中,各表的對映檔案 hbm.xml 可以通過工具生成,例如在使用 myeclipse 開發時,它提供了自動生成對映檔案的工具。配置檔案的基本結構如下 schema 指定對映資料庫的schema名 catalog 指定對映資料庫的catalog名 default cascade...