Hibernate屬性簡單分析
在向大家詳細介紹Hibernate屬性之前,首先讓大家了解下Hibernate是一種新的O/R映射工具,然后全面介紹Hibernate屬性。
在Java環境下,有多種對象關系映射方法,如實體Bean、OJB、JDO、JDBC等。Hibernate是一種新的O/R映射工具,它不僅提供了從Java類到數據表的映射,也提供了數據查詢和恢復等機制。Hibernate屬性非常簡單易學,目前國內有很多同行已經或正在用Hibernate開發實施項目;但Hibernate屬性有很多規則不為人知或應用甚少。本文的目的就是將這些規則歸納總結,希望對您的開發和設計有益。
系統啟動檢查您的對象關系映射是否正確時,是以。hbm.xml為基準來進行檢查的;對象文件的property可以比映射文件的property多,但不能少。如果您有如下的映射:
- <class name="com.hongsoft.test.User" table="res_user">
- <id name="id" column="id" type="long" unsaved-value="any">
- <generator class="assigned">
- </generator>
- </id
- <property name="name"/>
- <property name="loginName"/>
- <property name="passwd"/>
- </class>
系統啟動,檢查數據庫和其他配置正確后,將以該文件為基準,首先檢查User對象中有無id屬性和對應的get/set方法,如果沒有則報錯,如果有且正確則檢查有無name屬性和對應的get/set方法……,直到文件結束。要注意的是,如果屬性為name,則get方法名稱必須為 getName(),set方法名稱必須為setName(),否則會報錯。
如果User對象除了有id,name,loginName, passwd四個屬性和對應的方法,還有其它的屬性和方法,會報錯嗎?不會,因為對象關系映射是以。hbm.xml文件為基準的,而不是以PO文件為基準。您在項目中可以充分利用該特點,實現您自己的比較特殊的需求。例如,您可以在User對象中加入updatedPasswd表示更改后的口令,由此構造在表示層要使用的FormBean和在業務層要使用的ValueObject.當然,這樣做也有缺點,需要根據您的實際情況而定。以上介紹Hibernate屬性。
【編輯推薦】