zoukankan      html  css  js  c++  java
  • Hibernate 单向一对多映射

    单向 n-1

      单向 n-1 关联只需从 n 的一段访问 1 的一端

      此处 Order 类和 Customer 类,其中 Order 类需要引用 Customer 类

      代码:

      

    public class Customer {
        private Integer id;
        private String customerName;
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getCustomerName() {
            return customerName;
        }
    
        public void setCustomerName(String customerName) {
            this.customerName = customerName;
        }
    
    }
    Customer
    public class Order {
        private Integer id;
        private String OrderName;
        private Customer customer;
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getOrderName() {
            return OrderName;
        }
    
        public void setOrderName(String orderName) {
            OrderName = orderName;
        }
    
        public Customer getCustomer() {
            return customer;
        }
    
        public void setCustomer(Customer customer) {
            this.customer = customer;
        }
    
    }
    Order
    <hibernate-mapping>
        <class name="com.hibernate.entities.n21.Customer" table="CUSTOMERS">
            <id name="id" type="java.lang.Integer">
                <column name="ID" />
                <generator class="native" />
            </id>
            <property name="customerName" type="java.lang.String">
                <column name="CUSTOMER_NAME" />
            </property>
        </class>
    </hibernate-mapping>
    Customer.hbm.xml
    <hibernate-mapping package="com.hibernate.entities.n21">
        <class name="Order" table="ORDERS">
            <id name="id" type="java.lang.Integer">
                <column name="ID" />
                <generator class="native" />
            </id>
            <property name="OrderName" type="java.lang.String">
                <column name="ORDER_NAME" />
            </property>
            <many-to-one name="customer" class="Customer" fetch="select">
                <column name="CUSTOMER_ID" />
            </many-to-one>
        </class>
    </hibernate-mapping>
    Order.hbm.xml

      在 Order 的 hbm 配置文件中,使用了 <many-to-one> 的标签关联了 Customer 类

      其中 name 表示 Order 类中该属性的属性名

      class 表示关联的类的类名

      fetch 表示加载时的方式,join 表示从数据库获取 Order 类时,会一起把 Order 所关联的 Customer 一同加载到 session 缓存中,而 select 表示加载 Order 时,不加载所关联的Customer,只有当使用 customer 属性时,再加载到缓存中,Hibernate 默认值为 join

      当 customer 的一个对象被 order 对象引用时,不能在数据库中删除 customer,因为 order 数据表中有外键指向 customer 表

  • 相关阅读:
    【Django Admin皮肤】 Simpleui 自定义常用 持续更新中...
    【webSokect】基于django Channels的简单实现
    【webSocket】实现原理
    【webSocket】长轮询
    【前端实时时间】JS原生代码
    【数据结构的补全整理】规定在周一到周五中,赛选出8点到18点中的计划安排,空计划时刻补全空值
    JS面试经典知识(一)
    Python中 zipfile 出现乱码
    Linux shell 对数据进行归档
    Linux 函数的使用
  • 原文地址:https://www.cnblogs.com/zyx1301691180/p/7691205.html
Copyright © 2011-2022 走看看