zoukankan      html  css  js  c++  java
  • hibernate 单向 n-n

    版权声明:本文为博主原创文章,未经博主同意不得转载。

    https://blog.csdn.net/qilixiang012/article/details/27956057

    • 域模型:

    • 关系数据模型

    • n-n 的关联必须使用连接表
    • 与 1-n 映射相似,必须为 set 集合元素加入 key 子元素。指定 CATEGORIES_ITEMS 表中參照 CATEGORIES 表的外键为 CATEGORIY_ID. 与 1-n 关联映射不同的是。建立 n-n 关联时, 集合中的元素使用 many-to-many. many-to-many 子元素的 class 属性指定 items 集合中存放的是 Item 对象, column 属性指定 CATEGORIES_ITEMS 表中參照 ITEMS 表的外键为 ITEM_ID


    样例具体解释:
    Item.java
    package com.atguigu.hibernate.n2n;
    
    import java.util.HashSet;
    import java.util.Set;
    
    public class Item {
    
    	private Integer id;
    	private String name;
    	
    	
    	public Integer getId() {
    		return id;
    	}
    	public void setId(Integer id) {
    		this.id = id;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    }
    

    Category.java
    package com.atguigu.hibernate.n2n;
    
    import java.util.HashSet;
    import java.util.Set;
    
    public class Category {
    
    	private Integer id;
    	private String name;
    	
    	private Set<Item> items = new HashSet<>();
    
    	public Integer getId() {
    		return id;
    	}
    
    	public void setId(Integer id) {
    		this.id = id;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public Set<Item> getItems() {
    		return items;
    	}
    
    	public void setItems(Set<Item> items) {
    		this.items = items;
    	}
    	
    }
    

    Item.hbm.xml
    <?

    xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.atguigu.hibernate.n2n.Item" table="ITEMS"> <id name="id" type="java.lang.Integer"> <column name="ID" /> <generator class="native" /> </id> <property name="name" type="java.lang.String"> <column name="NAME" /> </property> </class> </hibernate-mapping>


    Category.hbm.xml
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    
    <hibernate-mapping package="com.atguigu.hibernate.n2n">
    
        <class name="Category" table="CATEGORIES">
        
            <id name="id" type="java.lang.Integer">
                <column name="ID" />
                <generator class="native" />
            </id>
        
            <property name="name" type="java.lang.String">
                <column name="NAME" />
            </property>
            
            <!-- table: 指定中间表 -->
            <set name="items" table="CATEGORIES_ITEMS">
                <key>
                    <column name="C_ID" />
                </key>
                <!-- 使用 many-to-many 指定多对多的关联关系. column 运行 Set 集合中的持久化类在中间表的外键列的名称  -->
                <many-to-many class="Item" column="I_ID"></many-to-many>
            </set>
            
        </class>
    </hibernate-mapping>
    


  • 相关阅读:
    169. Majority Element
    283. Move Zeroes
    1331. Rank Transform of an Array
    566. Reshape the Matrix
    985. Sum of Even Numbers After Queries
    1185. Day of the Week
    867. Transpose Matrix
    1217. Play with Chips
    766. Toeplitz Matrix
    1413. Minimum Value to Get Positive Step by Step Sum
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/9975334.html
Copyright © 2011-2022 走看看