淺析Hibernate自定義持久化實(shí)現(xiàn)
在Hibernate3中,我們可以對實(shí)體的insert,update,delete操作進(jìn)行定義,而無需完全依賴Hibernate提供的自動化操作接口.
對應(yīng)Hibernate自定義持久化實(shí)現(xiàn)機(jī)制,配置文件中引入了以下3個新的節(jié)點(diǎn)定義:sql-insert,sql-update與sql-delete.通過這3個節(jié)點(diǎn),我們可以直接指定用于實(shí)體insert,update,delete操作的SQL語句,從而避免了Hibernate自生成SQL所帶來的局限.
對于Item映射,在Hibernate自定義持久化實(shí)現(xiàn)中,我們可以如下定義:
- <hibernate-mapping package="com.hpjianhua.hibernate.model">
 - <class name="Item" table="t_items">
 - <id name="itemNo">
 - <generator class="assigned"/>
 - </id>
 - <property name="itemName" not-null="true"/>
 - <property name="spec"/>
 - <property name="pattern"/>
 - <many-to-one name="category"/>
 - <many-to-one name="unit"/>
 - <sql-insert>
 - INSERT INTO T_ITEM(ID,NAME,AGE) VALUES(?,?,?)
 - </sql-insert>
 - <sql-update>
 - UPDATE T_ITEM SET NAME=?,AGE=? WHERE ID=?
 - </sql-update>
 - <sql-delete>
 - DELETE FROM T_ITEM WHERE ID=?
 - </sql-delete>
 - </class>
 - </hibernate-mapping>
 
sql-insert,sql-delete,sql-update 節(jié)點(diǎn)還擁有一個可選屬性:callabel.如果此屬性為true,則當(dāng)前所定義的定點(diǎn)將被視為存儲過程加以執(zhí)行.
注意:Hibernate自定義持久化實(shí)現(xiàn)與Hibernate提供的內(nèi)置支持配置文件是不一樣的.自定義持久化實(shí)現(xiàn)的定義是在節(jié)點(diǎn)class內(nèi),而內(nèi)置支持是與class節(jié)點(diǎn)同個級別的.
【編輯推薦】















 
 
 



 
 
 
 