【Hibernate】实体映射文件--标签了解

        Hibernate的实体映射文件一般命名规则是name.hbm.xml。另外需要在文件中加入约束:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

hibernate-mapping

         hibernate-mapping是一级标签,所有的配置都需要在其内部设置,并且只允许有一个hibernate-mapping。

class

        class是映射的实体类,需要指定实体的全路径。

database-object

        database-object是辅助数据库对象,用于针对数据库的触发器、存储过程的创建和销毁等工作。

有两种模式,一种是文件中直接显示定义

<database-object>
        <create>CREATE TRIGGER my_trigger ...</create>
        <drop>DROP TRIGGER my_trigger</drop>
    </database-object>

       一种则是提供一个类,这个类知道如何组织创建和销毁命令,并且,这个类必须继承org.hibernate.mapping.AuxiliaryDatabaseObject接口

    <database-object>
        <definition class="MyTriggerDefinition"/>
    </database-object>

filter-def

         filter-def是配置过滤器的标签,用于指定过滤器filter

import

        import是引用其他类,假设你的应用程序有两个同样名字的持久化类,但是你不想在Hibernate查询中使用他们的全限定名,那么类可以被显示地引用:

<import class="java.lang.Object" rename="Universe"/>

       甚至可以引用没有被明确定义类和接口:

<import
        class="ClassName"              (1)
        rename="ShortName"             (2)
/>

joined-subclass

         joined-subclass是连接地子类,即每个子类可能被映射到他自己的表中(每个子类一个表的策略),被继承的状态通过和超类的表关联得到,在继承映射中可能会用到。

<joined-subclass
        name="ClassName"                  
        table="tablename"                   
        proxy="ProxyInterface"              
        lazy="true|false"                   
        dynamic-update="true|false"
        dynamic-insert="true|false"
        schema="schema"
        catalog="catalog"
        extends="SuperclassName"
        persister="ClassName"
        subselect="SQL expression"
        entity-name="EntityName"
        node="element-name">

        <key .... >

        <property .... />
        .....
</joined-subclass>

meta

         meta用来定义其他元数据。

query

        query可以用来配置查询的sql语句,避免硬编码。

resultset

        resultset是可以将结果集合进行处理的,一般与query查询关联出现。

sql-query

        sql-query与query作用相同,是hibernate的原生sql

subclass

        subclass是子类,joined-subclass属于其中的一种。

typedef

        typedef是为了方便简写,当某种情况一直需要使用某个实体类,可以通过typedef定义一个简称,从而减轻书写压力。

union-subclass

        union-subclass属于subclass的一种,也是在继承映射中使用的,称为联合子类,仅仅映射类继承树中具体类部分到表中(每个具体类一张表的策略)。如果你想使用多态关联(例如,一个对类继承树中超类的关联),你需要使用<union-subclass>映射。









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值