POJO類以及映射設定檔,pojo映射設定檔
對持久化對象的要求
1、 提供一個無參構造器,使Hibernate可以使用Constructor.newInstace()來執行個體化持久化對象
2、提供一個識別屬性(identifier property)。通常映射為資料庫表的主鍵欄位,如果沒有該屬性,一些功能將不起作用,如Session.saveOrUpdate()。
3、 為持久化類的欄位聲明存取方法(set/get)。Hibernate對javaBean風格的屬性實行持久化。
4、使用非final類,在運行時組建代理程式是Hibernate的一個重要功能,如果持久化類沒有實現任何介面,Hibernate使用CGLB組建代理程式,如果使用final類,則無法產生CGLIB代理。
5、重寫equals()和hashCode()方法,如果需要將持久化類放到Set中(當需要進行關聯映射時),則應該重寫這兩個方法。
對於映射設定檔中非主鍵元素使用<property>標籤映射,<property>標籤的type屬性用來指定持久化類和資料表中的類型。
可以寫Java中類的全名,也可以寫Hibernate類型。
映射主鍵屬性
主鍵如果是數字建議使用對應的封裝類型。
id元素用於映射主鍵,id元素子項目<generator>的class屬性用於指定主鍵建置原則。
其常用值如下:
identity:使用資料庫的自動成長策略,不是所有資料庫都支援,比如Oracle就不支援
sequence:在DB2,PostgreSQL,Oracle,SAPDB等中使用sequence。
hilo:使用高地位演算法產生主鍵,只需要一張額外的表,所有的資料庫都支援。
increment:由Hibernate維護的,先查詢當前最大的id值,在加1增長,不推薦使用,因為有安全執行緒問題。
assigned:手工指定主鍵。
myeclipse可以不可以由pojo類產生對應檔與資料庫表?
MYeclipse沒有這個功能,不過這個功能很特殊啊?
pojo直接組建組態檔案到表,不知道表名怎麼起。
知道hibernate有個工具可以把設定檔產生pojo和資料庫的schema,可以從schema組建組態檔案,沒聽說有從POJO轉的
myeclipse中,根據*hbmxml檔案產生POJO類?
根據表組建組態檔案,在根據業務需求修改設定檔,然後根據設定檔產生pojo