浅析Hibernate自定义持久化实现

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

在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数据加载方式浅析
责任编辑:佚名 来源: JavaEye
相关推荐

2009-09-29 16:11:45

Hibernate实现

2009-06-30 17:02:31

J2EE实现分页

2011-06-20 16:54:40

Qt Widget model

2025-03-05 10:49:32

2021-01-14 19:04:36

框架数据库mybatis

2009-08-06 17:13:56

ASP.NET自定义控

2009-08-10 14:16:59

ASP.NET自定义控

2009-07-28 09:32:41

ASP.NET自定义控

2009-07-20 13:47:08

iBATIS.NET字

2009-07-07 14:00:25

JDK日志Handler

2009-09-28 15:50:53

Hibernate创建持久化Product

2009-09-29 16:46:01

创建Hibernate

2009-09-25 17:19:28

Hibernate持久

2009-09-24 15:42:44

Hibernate对象

2009-09-24 16:39:20

Hibernate传播

2009-09-07 22:00:15

LINQ自定义

2022-05-18 07:44:13

自定义菜单前端

2010-02-03 16:56:20

C++自定义类

2009-09-25 09:30:33

Hibernate持久

2015-02-12 15:33:43

微信SDK
点赞
收藏

51CTO技术栈公众号