Hibernate3.2 学习笔记 映射的基本元素和属性

 

 '  关系映射文件
     <hibernate-mapping>  0

  属性:
     default-scheam             指定默认的数据表命名
     package                          指定包名

             <class>   1

    属性

    name                       设定类名   

    table                        设定表名  

    schema                   指定默认的数据表命名
    mutable                   如果为false 等价于所有的property元素update属性为false 整个实例不会被更新

     dynamic-insert              如果为true 等价于所有的property元素dynamic-update属性为true 保存对象时会动态生成updatet语句 包含所有不为null的值  默认false

     dynamic-update           果为true 等价于所有的property元素dynamic-update属性为true 保存对象时会动态生成updatet语句 包含所有不为null的值  默认false

      lazy                               如果为true 表示使用延迟检索策略

                         子元素 

                        <id>    2       子元素必须存在且只能存在一次<property>元素可以不存在,存在一次或者多次,必须先定义<id>元素再定义<property>元素    <id>用来设定持久化类的OID和表的主键映射

                                    子元素

                                    <generator>  3            子元素制定对象标识符生成器,他负责为OID生成唯一从标识符

                         子元素

                         <property>  2

                                       属性

                                       name                         指定持久化类的属性的名字

                                       type                            定Hibernate映射的类型 Hibernate映射类型是与SQL类型的桥梁

                             not-null               如果为true表明不允许为空
                             column               指定与类的属性映射的表的字段名
                             access                指定Hibernate访问持久化类的属性方式
                                                                 property 默认值 通过get 和set方法
                                                                 field      表明Hibernate运用java反射机制直接访问类的属性

                            insert                    如果为false 在insert语句永远不插入该字段
                            update                  如果为false 在update语句永远不插入该字段 
                            dynamic-insert      如果为true 保存插入一个对象时会动态生成insert语句 包含所有不为null的值 默认false
                            dynamic-update 如果为true 保存更新对象时会动态生成updatet语句 包含所有不为null的值  默认false

                             子元素

                             <meta> 3

                                       属性:

                                        class-description  指定类的javadoc
                                        field-description  指定描述类属性的javadoc
                                        interface  如果为true 表示为接口而不是类
                                        implements  指定所实现的接口
                                        generated-class 重新指定生成的类名
                                        scope-class  指定类的修饰符 默认是public
                                        scope-set   指定set方法的修饰符,默认是public
                                        scope-get  指定get方法的修饰符,默认是public
                                        scope-field  指定类的属性的修饰符,默认是private
                                        use-in-toString  如果为true,指定在toString()的方法里包含此属性
                                        gen-property  如果是false 不会在java类中生成此属性,默认为true
                                        finder-method 指定find方法名

                               子元素

                               <column>   3     

                                        属性:

                                        name  该字段的名字
                                        length  该字段的长度
                                        not-null 如果为true 表示该字段不许为空
                                        unique  如果为true 表示该字段有唯一约束
                                        index  给一个或多个字段建立索引
                                        unique-key  为多隔字段设定唯一约束
                                        foreign-key 为外键约束命名 在<many-to-one>,<one-to-one>,<key>和<many-to-many>元素中包含foreign-key属性 如果没有定义该属性hbm2dll工具会自动为外键约束生成唯一的名字,在双向关联中inverse属性为true的一端不能设置foreign-key属性 
                                        sql-type  指定字段的sql类型
                                        check  设定sql检查约束

                                   <componenet>  2  组件

                                          属性:
                                               name  持久化类的属性名
                                               class   类名
                                          元素:
                                         <parent> 3   指定所属的整体类
                                         <property>3  内部的属性

 值类型 和 实体类型

值类型没有OID 不能被单独持久化 实体类可以单独持久化

'  当程序持久化组件的所属类的时候 组件类会自动持久化 Hibernate是不允许单独持久化组件类的
'  组件可以嵌套 可以关联其他持久化类 其他持久化类不能关联它

一个简单的示例                            

<? 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 >

    
< class  name ="ergal.Customer"  table ="CUSTOMERS"  lazy ="true" >
        
< id  name ="id"  type ="long"  column ="ID" >
            
< generator  class ="increment"   />
        
</ id >
    
        
< property  name ="name"  type ="string" >
            
< column  name ="NAME"  length ="15"   />
        
</ property >
        
< set 
            
name ="orders"
            cascade
="all-delete-orphan"  
            inverse
="true"
            
>
        
            
< key  column ="CUSTOMER_ID"   />
            
< one-to-many  class ="ergal.Order"   />
        
</ set >    
    
</ class >
</ hibernate-mapping >

          

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值