• 关联映射


    关联映射
     
    含义:将对象模型之间的关系 映射至数据库关系模型 。
     
    1.配置
      市 多方  city_id city_name prov_id
      省 一方  prov_id  prov_name
     
      多对一 :可以从多方导航至 一方
     
    <!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="com.it.bean">
        <class name="City" table="city"> 
            <id name="city_id" column="city_id">
                <!-- 主键生成策略 -->
                <generator class="assigned"></generator>
            </id>
            <property name="city_name" column="city_name "></property>
              <!--多对一关联映射-->
            <property name="prov" column="prov _id" ></property>
         /class>
    </hibernate-mapping>
     
     
      一对多 :可以从一方导航至 多方
     
     
    <!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="com.it.bean">
        <class name="Pov" table="prov"> 
            <id name="prov_id" column="prov_id ">
                <!-- 主键生成策略 -->
                <generator class="assigned"></generator>
            </id>
            <property name="prov_name" column="prov_name "></property>
              <!--一对多关联映射-->
            <set name ="citys" table="city" inverse="true">      
                   <key cloumn="prov_id"></key>          //查询外键
                   <one-to-many class="com.it.bean.City"/>
            </set>
        </class>
    </hibernate-mapping>
     
     
     注意 :po  --构造器 扩展
     
      关联操作:
     
       a.务必 保证  对象模型 完成。
     
       b.保证 关联对象  处于 持久态。
     
     
    public class Text1{
         public static void main(String[] args){
             //创建SessionFactory
              SessionFavtory sessionFactory = null;
             //创建Session
              Session session  = null;
              //事务
              Transaction tx = null;
              try{
                   sessionFactory = new Configuration.configure().buildSessionFactory();
                   session = sessionFactory.getCurrentSession();
                   //开启事务
                   tx = sesison.beginTransaction();
                   //多对一测试
                   /*
                   City city = (City)sesison.get(City.class,"1301") ;
                   Hibernate,initialize(city.getProv());   //代理对象         
                   system.out.println("----");
                   system.out.println(city.getProv().getProv_name()); 
                   */
                    //一对多测试
                   Prov prov= (Prov)sesison.get(Prov.class,"13") ;
                   system.out.println("----");
                   for(Cty c:p.getCitys()){
                   system.out.println(c.get City_name);
                        
                    //提交
                   tx.commit();
              }catch(Exception e){
                   e.printStackTrace();
                   //事务回滚
                   tx.rollback();
              }
         }
    }
     
    2.性能
     
      inverse (true) 配置在一方的set中, 可以让 hibernate 放弃 一方到多方的从对象模型到关系模型的维护
     
       cascade="" 多方  级联
         级联的什么操作
         级联时是否 影响对象模型
     
     
  • 相关阅读:
    MVC ORM 架构
    Kubernetes 第八章 Pod 控制器
    Kubernetes 第七章 Configure Liveness and Readiness Probes
    Kubernetes 第六章 pod 资源对象
    Kubernetes 第五章 YAML
    Kubernetes 核心组件
    Kubernetes 架构原理
    Kubernetes 第四章 kubectl
    Kubernetes 第三章 kubeadm
    yum 配置及yum 源配置
  • 原文地址:https://www.cnblogs.com/nin-w/p/5907445.html
Copyright © 2020-2023  润新知