zoukankan      html  css  js  c++  java
  • 组件映射、继承映射

    一、组件映射

    1.概念

    类组合关系的映射,也叫作组件映射!
    注意:组件类和被包含的组件类,共同映射到一张表!

    2.需求

    汽车与车轮

    3.数据库T_Car

    主键 汽车名称 轮子大小 个数

    4.Car
    /**
     * Created by qianxingzhe on 16/5/28.
     */
    public class Car {
        private int id;
    
        private String name;
    
        private Wheel wheel;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Wheel getWheel() {
            return wheel;
        }
    
        public void setWheel(Wheel wheel) {
            this.wheel = wheel;
        }
    }
    
    5.Wheel
    /**
     * Created by qianxingzhe on 16/5/28.
     */
    public class Wheel {
    
        private int count;
    
        private int size;
    
        public int getCount() {
            return count;
        }
    
        public void setCount(int count) {
            this.count = count;
        }
    
        public int getSize() {
            return size;
        }
    
        public void setSize(int size) {
            this.size = size;
        }
    }
    
    6.Car.hbm.xml
    <?xml version="1.0"?>
    <!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.yly.component">
    
        <class name="Car" table="t_car">
            <id name="id">
                <generator class="native">
                </generator>
            </id>
    
            <property name="name" length="20"/>
    
            <!--
            组件映射
            -->
            <component name="wheel" class="Wheel">
                <property name="size"></property>
                <property name="count"></property>
            </component>
    
        </class>
    
    </hibernate-mapping>
    
    

    二、继承映射

    1.简单继承映射

    有多少个子类,写多少个映射文件!

    2.简单继承代码
    // 动物类
    public abstract class Animal {
    
    	private int id;
    	private String name;
    }	
    
    <!-- 
    	简单继承
     -->
    <hibernate-mapping package="cn.itcast.e_extends1">
    	
    	<class name="Cat" table="t_Cat">
    		<!-- 简单继承映射: 父类属性直接写 -->
    		<id name="id">
    			<generator class="native"></generator>
    		</id>
    		<property name="na"></property>
    		<property name="catchMouse"></property>					 
    	</class>
    	
    
    </hibernate-mapping>
    
    @Test
    	public void getSave() {
    		
    		Session session = sf.openSession();
    		session.beginTransaction();
    		
    		// 保存
    //		Cat cat = new Cat();
    //		cat.setName("大花猫");
    //		cat.setCatchMouse("抓小老鼠");
    //		session.save(cat);
    		
    		// 获取时候注意:当写hql查询的使用,通过父类查询必须写上类的全名
    		Query q = session.createQuery("from cn.itcast.e_extends1.Animal");
    		List<Animal> list = q.list();
    		System.out.println(list);
    		
    		session.getTransaction().commit();
    		session.close();
    		
    	}
    	
    
    
    继承映射

    1.所有子类映射到一张表
    2.每个类映射到一张表
    3.每个子类映射一张表,父类不对应表

  • 相关阅读:
    Maven笔记之面试题合集
    Maven笔记之核心概念及常用命令
    UML中的关系
    RocketMq核心概念
    linux安装rocketMq(包括安装maven,JDK)
    linux安装JDK,配置环境变量
    ASP.NET Core读取appsettings.json配置文件信息
    ASP.NET Core获取客户端IP地址
    ASP.NET Core根据环境切换NLog配置
    ASP.NET Core使用NLog记录日志
  • 原文地址:https://www.cnblogs.com/FlySheep/p/5537007.html
Copyright © 2011-2022 走看看