hibernate关联关系之多对多关系
来源:互联网 发布:网络舆情应急预案 编辑:程序博客网 时间:2024/05/16 11:00
单向多对多
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<Item>();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;}}
package com.atguigu.hibernate.n2n;import java.util.HashSet;import java.util.Set;public class Item {private Integer id;private String name;private Set<Category> categories = new HashSet<Category>();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<Category> getCategories() {return categories;}public void setCategories(Set<Category> categories) {this.categories = categories;}}
<?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>
<?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> <set name="categories" table="CATEGORIES_ITEMS" inverse="true"> <key column="I_ID"></key> <many-to-many class="com.atguigu.hibernate.n2n.Category" column="C_ID"></many-to-many> </set> </class></hibernate-mapping>
package com.atguigu.hibernate.n2n;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.sql.Blob;import java.sql.Connection;import java.sql.SQLException;import java.util.Date;import java.util.Set;import org.hibernate.Hibernate;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.jdbc.Work;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;import org.junit.After;import org.junit.Before;import org.junit.Test;public class HibernateTest {private SessionFactory sessionFactory;private Session session;private Transaction transaction;@Beforepublic void init(){Configuration configuration = new Configuration().configure();ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()) .buildServiceRegistry();sessionFactory = configuration.buildSessionFactory(serviceRegistry);session = sessionFactory.openSession();transaction = session.beginTransaction();}@Afterpublic void destroy(){transaction.commit();session.close();sessionFactory.close();}@Testpublic void testGet(){Category category = (Category) session.get(Category.class, 1);System.out.println(category.getName()); //需要连接中间表Set<Item> items = category.getItems();System.out.println(items.size()); }@Testpublic void testSave(){Category category1 = new Category();category1.setName("C-AA");Category category2 = new Category();category2.setName("C-BB");Item item1 = new Item();item1.setName("I-AA");Item item2 = new Item();item2.setName("I-BB");//设定关联关系category1.getItems().add(item1);category1.getItems().add(item2);category2.getItems().add(item1);category2.getItems().add(item2);item1.getCategories().add(category1);item1.getCategories().add(category2);item2.getCategories().add(category1);item2.getCategories().add(category2);//执行保存操作session.save(category1);session.save(category2);session.save(item1);session.save(item2);}}
0 0
- hibernate关联关系之多对多关系
- Hibernate关联关系映射之多对多关联关系
- Hibernate关联关系之多对多
- Hibernate关联关系之多对一
- Hibernate关联关系之多对一
- Hibernate学习笔记10--关联关系之多对多
- Hibernate关系映射之多对多关系
- Hibernate学习笔记7--关联关系之多对一
- hibernate关系映射之多对多
- hibernate映射关系之多对多
- 【Hibernate五】关系映射之多对多
- hibernate之多对多关系设置
- Hibernate关联关系之一对多关联
- 技术分析之Hibernate的关联关系映射之多对多映射
- Hibernate映射关系之多对多关系映射
- Hibernate之多对多关系之间的关系映射
- Hibernate -- 映射实体关联关系(多对多关联关系)
- Hibernate关联关系映射之一对多关联关系
- 转载:java_min的专栏-webservcie生成客户端代码报错----javax.xml.ws.soap.SOAPFaultException: Cannot create a secure X
- 排序算法比较
- javamail收发邮件
- 一、小贝学习cocos2dx——windows环境搭建
- s当过兵v不会太难进软件和人员合同法国和地方广泛地
- hibernate关联关系之多对多关系
- 全自动pdf转word转换器独家发布
- 岁月号沉没:大型灾难考验国家伦理
- LeetCode: Edit Distance
- BZOJ 1010 单调队列优化dp
- android对话框(Dialog)的用法
- 双向冒泡排序
- 如何解决安卓SDK无法下载Package的问题
- java实现栈(数组和链表两种实现方式)