zoukankan      html  css  js  c++  java
  • hibernate一对多映射文件的配置

    其中一个Customer对应多个LinkMan

    Customer的映射文件 Customer.hbm.xml-------------->一对多

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="cn.itcast.domain" >
        <class name="Customer" table="cst_customer" >
            <id name="cust_id"  >
                <generator class="native"></generator>
            </id>
            <property name="cust_name" column="cust_name" ></property>
            <property name="cust_source" column="cust_source" ></property>
            <property name="cust_industry" column="cust_industry" ></property>
            <property name="cust_level" column="cust_level" ></property>
            <property name="cust_linkman" column="cust_linkman" ></property>
            <property name="cust_phone" column="cust_phone" ></property>
            <property name="cust_mobile" column="cust_mobile" ></property>
        
            <!-- 集合,一对多关系,在配置文件中配置 -->
            <!-- 
                name属性:多的一方集合的属性名
                column属性: 多的一方的外键列名
                class属性: 多的一方类的完整类名
             -->
            
             <!-- 
                 级联操作:    cascade
                     save-update: 级联保存更新
                     delete:级联删除
                     all:save-update+delete
                 级联操作: 简化操作.目的就是为了少些两行代码.
              -->
              <!-- inverse属性: 配置关系是否维护. 
                      true: customer不维护关系
                      false(默认值): customer维护关系
                      
                  inverse属性: 性能优化.提高关系维护的性能.
                  原则: 无论怎么放弃,总有一方必须要维护关系.
                  一对多关系中: 一的一方放弃.也只能一的一方放弃.多的一方不能放弃.
              -->
            <set name="linkMens" inverse="true" cascade="delete">
                <key column="lkm_cust_id"></key>
                <one-to-many class="LinkMan" />
            </set>
            
        
        </class>
    </hibernate-mapping>

    LinkMan的映射文件 LinkMan.hbm.xml-------------->多对一

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="cn.itcast.domain" >
        <class name="LinkMan" table="cst_linkman" >
            <id name="lkm_id"  >
                <generator class="native"></generator>
            </id>
            <property name="lkm_gender"  ></property>
            <property name="lkm_name"  ></property>
            <property name="lkm_phone"  ></property>
            <property name="lkm_email"  ></property>
            <property name="lkm_qq"  ></property>
            <property name="lkm_mobile"  ></property>
            <property name="lkm_memo"  ></property>
            <property name="lkm_position"  ></property>
            
            <!-- 多对一 -->
            <!-- 
                name属性:一的一方的对象的名称
                column属性: 外键列名
                class属性: 一的一方的类的全路径
             -->
              <!-- 
                 级联操作:    cascade
                     save-update: 级联保存更新
                     delete:级联删除
                     all:save-update+delete
                 级联操作: 简化操作.目的就是为了少些两行代码.
              -->
              <!-- 多的一方: 不能放弃维护关系的.外键字段就在多的一方.  -->
            <many-to-one name="customer" column="lkm_cust_id" class="Customer"  >
            </many-to-one>
        </class>
    </hibernate-mapping>
  • 相关阅读:
    Linux实战教学笔记44:NoSQL数据库开篇之应用指南
    Linux实战教学笔记43:squid代理与缓存实践(二)
    Linux实战教学笔记42:squid代理与缓存实践(一)
    Linux实战教学笔记41:企业级SVN版本管理与大型代码上线方案
    Linux实战教学笔记40: Mha-Atlas-MySQL高可用方案实践(二)
    Linux实战教学笔记39:Mha-Atlas-MySQL高可用方案实践(一)
    Linux实战教学笔记38:企业级Nginx Web服务优化实战(下)
    Linux实战教学笔记37:企业级Nginx Web服务优化实战(上)
    Linux实战教学笔记36:PHP服务缓存加速深度优化实践
    Linux实战教学笔记35:企业级监控Nagios实践(下)
  • 原文地址:https://www.cnblogs.com/houchen/p/10639308.html
Copyright © 2011-2022 走看看