zoukankan      html  css  js  c++  java
  • hibernate组件映射

    类组合关系的映射,也叫做组件映射!

    注意:组件类和被包含的组件类,共同映射到一张表!

    需求: 汽车与车轮

    <?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="loaderman.d_component">
        
        <class name="Car" table="t_car">
            <id name="id">
                <generator class="native"></generator>
            </id>    
            <property name="name" length="20"></property>
            
            <!-- 组件映射 -->
            <component name="wheel">
                <property name="size"></property>
                <property name="count"></property>
            </component>
            
                         
        </class>
        
    
    </hibernate-mapping>
    package loaderman.d_component;
    
    import org.hibernate.Hibernate;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.classic.Session;
    import org.junit.Test;
    
    public class App {
    
        private static SessionFactory sf;
        static {
            sf = new Configuration()
                    .configure()
                    .addClass(Car.class)
                    .buildSessionFactory();
        }
    
        @Test
        public void getSave() {
    
            Session session = sf.openSession();
            session.beginTransaction();
    
            // 轮子
            Wheel wheel = new Wheel();
            wheel.setSize(38);
            wheel.setCount(4);
            // 汽车
            Car car = new Car();
            car.setName("BMW");
            car.setWheel(wheel);
    
            // 保存
            session.save(car);
    
            session.getTransaction().commit();
            session.close();
    
        }
    
    }
    package loaderman.d_component;
    
    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;
        }
        
    }
    package loaderman.d_component;
    // 车轮
    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;
        }
        
        
    }

  • 相关阅读:
    CTF简介
    最先与最后
    记一次某校版facemash的搭建
    ipv6入门
    win10开启IPv6的两种方法
    安装 Go 1.11 在 Ubuntu 18.04 & 16.04 LTS
    python开发者的AsyncIO
    Python 异步--Await the Future
    Python元类
    alias 和 unalias 命令
  • 原文地址:https://www.cnblogs.com/loaderman/p/10038001.html
Copyright © 2011-2022 走看看