浅析Hibernate自定义持久化实现

本文向您介绍Hibernate自定义持久化的实现方式,通过这3个节点,我们可以直接指定用于实体insert,update,delete操作的SQL语句,从而避免了Hibernate自生成SQL所带来的局限。
首页 新闻资讯 行业资讯 浅析Hibernate自定义持久化实现

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

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

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

复制

<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>
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

  • 10.

  • 11.

  • 12.

  • 13.

  • 14.

  • 15.

  • 16.

  • 17.

  • 18.

  • 19.

  • 20.

  • 21.

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

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

 

【编辑推荐】

  1. Hibernate查询方法与缓存的关系

  2. Hibernate缓存机制探讨

  3. Hibernate脏数据与数据缓存

  4. Hibernate实体对象的生命周期

  5. Hibernate数据加载方式浅析