Hibernate屬性簡單分析
在向大家詳細(xì)介紹Hibernate屬性之前,首先讓大家了解下Hibernate是一種新的O/R映射工具,然后全面介紹Hibernate屬性。
在Java環(huán)境下,有多種對象關(guān)系映射方法,如實(shí)體Bean、OJB、JDO、JDBC等。Hibernate是一種新的O/R映射工具,它不僅提供了從Java類到數(shù)據(jù)表的映射,也提供了數(shù)據(jù)查詢和恢復(fù)等機(jī)制。Hibernate屬性非常簡單易學(xué),目前國內(nèi)有很多同行已經(jīng)或正在用Hibernate開發(fā)實(shí)施項(xiàng)目;但Hibernate屬性有很多規(guī)則不為人知或應(yīng)用甚少。本文的目的就是將這些規(guī)則歸納總結(jié),希望對您的開發(fā)和設(shè)計(jì)有益。
系統(tǒng)啟動(dòng)檢查您的對象關(guān)系映射是否正確時(shí),是以。hbm.xml為基準(zhǔn)來進(jìn)行檢查的;對象文件的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>
系統(tǒng)啟動(dòng),檢查數(shù)據(jù)庫和其他配置正確后,將以該文件為基準(zhǔn),首先檢查User對象中有無id屬性和對應(yīng)的get/set方法,如果沒有則報(bào)錯(cuò),如果有且正確則檢查有無name屬性和對應(yīng)的get/set方法……,直到文件結(jié)束。要注意的是,如果屬性為name,則get方法名稱必須為 getName(),set方法名稱必須為setName(),否則會(huì)報(bào)錯(cuò)。
如果User對象除了有id,name,loginName, passwd四個(gè)屬性和對應(yīng)的方法,還有其它的屬性和方法,會(huì)報(bào)錯(cuò)嗎?不會(huì),因?yàn)閷ο箨P(guān)系映射是以。hbm.xml文件為基準(zhǔn)的,而不是以PO文件為基準(zhǔn)。您在項(xiàng)目中可以充分利用該特點(diǎn),實(shí)現(xiàn)您自己的比較特殊的需求。例如,您可以在User對象中加入updatedPasswd表示更改后的口令,由此構(gòu)造在表示層要使用的FormBean和在業(yè)務(wù)層要使用的ValueObject.當(dāng)然,這樣做也有缺點(diǎn),需要根據(jù)您的實(shí)際情況而定。以上介紹Hibernate屬性。
【編輯推薦】