浅析Hibernate自定义持久化实现

在Hibernate3中,我们可以对实体的insert,update,delete操作进行定义,而无需完全依赖Hibernate提供的自动化操作接口.

对应Hibernate自定义持久化实现机制,配置文件中引入了以下3个新的节点定义:sql-insert,sql-update与sql-delete.通过这3个节点,我们可以直接指定用于实体insert,update,delete操作的SQL语句,从而避免了Hibernate自生成SQL所带来的局限.

对于Item映射,在Hibernate自定义持久化实现中,我们可以如下定义:

 
 
 
  1. <hibernate-mapping package="com.hpjianhua.hibernate.model">     
  2.     <class name="Item" table="t_items">     
  3.         <id name="itemNo">     
  4.             <generator class="assigned"/>     
  5.         </id>     
  6. <property name="itemName" not-null="true"/>     
  7.         <property name="spec"/>     
  8.         <property name="pattern"/>     
  9.         <many-to-one name="category"/>     
  10.         <many-to-one name="unit"/>     
  11.         <sql-insert>     
  12.             INSERT INTO T_ITEM(ID,NAME,AGE) VALUES(?,?,?)     
  13.         </sql-insert>     
  14.         <sql-update>     
  15.             UPDATE T_ITEM SET NAME=?,AGE=? WHERE ID=?     
  16.         </sql-update>     
  17.         <sql-delete>     
  18.             DELETE FROM T_ITEM WHERE ID=?     
  19.         </sql-delete>     
  20.     </class>     
  21. </hibernate-mapping>    

sql-insert,sql-delete,sql-update 节点还拥有一个可选属性:callabel.如果此属性为true,则当前所定义的定点将被视为存储过程加以执行.

注意:Hibernate自定义持久化实现与Hibernate提供的内置支持配置文件是不一样的.自定义持久化实现的定义是在节点class内,而内置支持是与class节点同个级别的.

 

【编辑推荐】

  1. Hibernate查询方法与缓存的关系
  2. Hibernate缓存机制探讨
  3. Hibernate脏数据与数据缓存
  4. Hibernate实体对象的生命周期
  5. Hibernate数据加载方式浅析
THE END