hibernate映射-单向n-n关联关系

(学习记录,错误不足之处,请您耐心指正^_^)

hibernate映射-多对多关联关系

   n-n关联必须使用连接表才能完成,

一、代码示例:

{类文件↓}

Category.class

 1 package com.zit.hibernate.n2n;
 2 
 3 import java.util.HashSet;
 4 import java.util.Set;
 5 
 6 public class Category {
 7     
 8     private Integer id;
 9     private String name;
10     
11     private Set<Item> items = new HashSet<>();
12     
13     public Integer getId() {
14         return id;
15     }
16     public void setId(Integer id) {
17         this.id = id;
18     }
19     public String getName() {
20         return name;
21     }
22     public void setName(String name) {
23         this.name = name;
24     }
25     public Set<Item> getItems() {
26         return items;
27     }
28     public void setItems(Set<Item> items) {
29         this.items = items;
30     }
31     
32 }
Category.class

Item.class

 

 1 package com.zit.hibernate.n2n;
 2 
 3 public class Item {
 4     
 5     private Integer id;
 6     private String name;
 7     
 8     public Integer getId() {
 9         return id;
10     }
11     public void setId(Integer id) {
12         this.id = id;
13     }
14     public String getName() {
15         return name;
16     }
17     public void setName(String name) {
18         this.name = name;
19     }
20     
21 }
Item.class

 

(单向n-n)

{映射文件↓}

Item.hbm.xml

 1 <?xml version="1.0"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 4 <!-- Generated 2015-12-25 13:55:35 by Hibernate Tools 3.4.0.CR1 -->
 5 <hibernate-mapping package="com.zit.hibernate.n2n">
 6     <class name="Item" table="ITEMS">
 7         <id name="id" type="java.lang.Integer">
 8             <column name="ID" />
 9             <generator class="native" />
10         </id>
11         <property name="name" type="java.lang.String">
12             <column name="NAME" />
13         </property>
14     </class>
15 </hibernate-mapping>
Item.hbm.xml

Category.hbm.xml

 1 <?xml version="1.0"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 4 <!-- Generated 2015-12-25 13:55:35 by Hibernate Tools 3.4.0.CR1 -->
 5 <hibernate-mapping package="com.zit.hibernate.n2n">
 6     <class name="Category" table="CATEGORIES">
 7         <id name="id" type="java.lang.Integer">
 8             <column name="ID" />
 9             <generator class="native" />
10         </id>
11         <property name="name" type="java.lang.String">
12             <column name="NAME" />
13         </property>
14         <set name="items" table="CATEGORIES_ITEMS">
15             <key>
16                 <column name="C_ID" />
17             </key>
18             <many-to-many class="Item" column="I_ID"></many-to-many>
19         </set>
20     </class>
21 </hibernate-mapping>
Category.hbm.xml

在Category.hbm.xml中,

1 <set name="items" table="CATEGORIES_ITEMS">
2    <key>
3       <column name="C_ID" />
4    </key>
5    <many-to-many class="Item" column="I_ID"></many-to-many>
6 </set>

这里的table指定中间表的名字,key 子元素,指定该中间表中参照CATEGORIES表的外键为C_ID.

使用many-to-many时,class属性指定items集合中存放的是Item对象,column指定中间表中参照ITEMS表的外键

   名为  I_ID。

(中间表未指定主键,那么两个属性联合起来作为主键。)

 

二、使用注意:

1.保存记录时,由于两个表并没有直接的联系,所以,先后保存哪一个数据,并没有直接的影响。但save记录时,需要同时操作中间表,所以,会相应的多出insert语句。

2.查询时,有懒加载,在查询set<Item>的size时,会将 中间表与ITEMS表进行内连接查询。

(学习记录,错误不足之处,请您耐心指正^_^)

转载于:https://www.cnblogs.com/zitt/p/5075710.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491442.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

word公式居中,编号右对齐

本文介绍一种word文档实现公式居中&#xff0c;编号右对齐的简单易行的方法&#xff1a;制表法 首先插入一个一行3列的表格&#xff1a; 将公式放进第二个单元格&#xff0c;编号放进第三个单元格&#xff0c;第二个单元格格式居中&#xff0c;第三个单元格格式右对齐&#xf…

Ubuntu16.04 SSH 免密登录

1. 生成公钥&#xff0c;输入命令后按四个回车。 ssh-keygen -t rsa 2. 进入到.ssh文件夹下&#xff0c;然后追加公钥到公共文件 cd .ssh cat id_rsa.pub >> authorized_keys 3. 测试免密登录 ssh localhost

Facebook数字货币凸显硅谷雄心:打造全球金融操作系统

来源&#xff1a;腾讯科技腾讯科技讯 6月22日消息&#xff0c;据外媒报道&#xff0c;正如美国当代声名卓著的剧作家、电影编剧大卫马梅特(David Mamet)曾经写道的那样&#xff1a;“每个人都需要钱&#xff0c;这就是人们为何称其为钱的原因&#xff01;”当你有比任何人所需要…

Hadoop分布式集群搭建详细过程

1. 首先用五台机器搭建分布式&#xff0c;一个为master&#xff0c;剩下四个分别为slave01、slave02、slave03&#xff0c; slave04。 2. 修改机器名 五台机器分别都执行sudo vim /etc/hostname命令&#xff0c;将文件中的内容分别改为master、slave01、slave02、slave03&…

徐匡迪、潘云鹤等纷纷撰文,关于人工智能的最新判断都在这里了

来源&#xff1a;《前沿科学》编者按人工智能&#xff0c;近年来成为世界主要发达国家战略中的战略&#xff0c;力争抢占新一轮科技革命的制高点。在移动互联网、大数据、超级计算、传感网、脑科学等新理论新技术的驱动下&#xff0c;新一代人工智能加速发展&#xff0c;不断拓…

HDU 5600(瞎搞)

第一场Bestcoder居然爆零。。果然是too naive。。小聪明全部直接输出“YES”过了pretest&#xff0c;结果被叉也是&%$% 找到规律传递下就好。后来看官方题解感觉逼格好高。。然而就是瞎搞&#xff0c;找找规律就好 #include"cstdio" #include"queue" #…

CCAI 2019 | 郑南宁:“自觉性AI技术”可助力无人驾驶

来源&#xff1a;人工智能前沿讲习CCAI 20192019年中国人工智能大会&#xff08;Chinese Congress on Artificial Intelligence 2019&#xff0c;简称“CCAI 2019”&#xff09;将于在9月21日-22日在青岛胶州召开。谷歌、特斯拉&#xff0c;百度、滴滴、蔚来……如今从国外到国…

使用Hadoop自带的例子wordcount实现词频统计

Hadoop中自带的hadoop-mapreduce-examples-2.7.6.jar含有一些事例&#xff0c;本文将用wordcount实现词频统计。具体步骤如下&#xff1a; 1. 启动Hadoop 切换到Hadoop安装目录下的sbin目录下执行./start-all.sh命令 或执行./start-dfs.sh和./start-yarn.sh两条命令 2. 在集群…

使用Hadoop自带的例子pi计算圆周率

Hadoop中自带的hadoop-mapreduce-examples-2.7.6.jar含有一些事例&#xff0c;本文将用pi计算圆周率。若想了解其计算原理&#xff0c;参考&#xff1a;http://thinkinginhadoop.iteye.com/blog/710847。 具体步骤如下&#xff1a; 1. 启动Hadoop 切换到Hadoop安装目录下的sb…

.net core 生成jwt+swagger-通过 IHttpContextAccessor读取token信息

1.安装jwt相关包 <ItemGroup><PackageReference Include"Microsoft.AspNetCore.Authentication.JwtBearer" Version"6.0.25" /><PackageReference Include"Microsoft.IdentityModel.Tokens" Version"7.0.3" /><P…

NATURE 人工智能 | 神奇的粒子机器人

没想到吧&#xff0c;像细胞一样自由组合灵活多变的机器人正在从科幻电影中走出来。就像在伤口愈合是活细胞聚集并集体迁移的过程。在生物系统中&#xff0c;群体的大规模集体迁移是通过组件的耦合和协调来实现的&#xff0c;在伤口愈合的过程中&#xff0c;活细胞聚集并集体迁…

表单校验---struts2

一 写validate方伐 1 让你的Action继承ActionSupport类&#xff0c; 重写validate方法&#xff0c;&#xff08;或validateXxxx&#xff09; 判断&#xff0c;写入错误信息 jsp中用标签显示&#xff0c;struts。xml中配置转向的页面 package he.action;import java.util.Map;…

城市大脑与智慧城市前沿趋势

近年来&#xff0c;智慧城市建设出现新的动向&#xff0c;包括城市大脑、城市云脑、城市超级大脑、城市超脑、城市神经网络等“泛城市大脑”概念也大量涌现。杭州、上海、北京、广州等城市各自提出和开展了不同城市大脑建设方案&#xff0c;其中上海市开展了以建设城市神经元系…

在iOS 8中使用UIAlertController

iOS 8的新特性之一就是让接口更有适应性、更灵活&#xff0c;因此许多视图控制器的实现方式发生了巨大的变化。全新的UIPresentationController在实现视图控制器间的过渡动画效果和自适应设备尺寸变化效果&#xff08;比如说旋转&#xff09;中发挥了重要的作用&#xff0c;它有…

MapReduce分析NCDC 年气象数据最低温度与最高温度

利用hadoop计算技术对采集的气象数据信息进行处理&#xff0c;主要分两个阶段&#xff1a;mapper阶段和reducer阶段&#xff0c;mapper阶段主要是对日志文件进行按行读取并进行字符串截取&#xff0c;reducer阶段对mapper阶段传过来的数据进行大小比较&#xff0c;最终获取每一…

非侵入脑机接口新突破!用意念控制光标,连续追踪效果提升5倍

来源&#xff1a;智东西看点&#xff1a;CMU研究人员在使用非侵入式脑机接口开发了第一个成功用意念控制的机械臂&#xff0c;展现了连续追踪和跟踪计算机光标的能力。智东西6月23日消息&#xff0c;卡内基梅隆大学与明尼苏达大学的研究人员在非侵入式机器人设备控制领域取得了…

AI芯片的长征之路:挑战与机遇

来源&#xff1a; 半导体行业观察前言&#xff1a;笔者有幸受邀在六月初北京举行的首届亚洲AI硬件峰会&#xff08;AI Hardware Summit Asia&#xff09;上发表了开幕主题演讲&#xff0c;与全世界的AI硬件专家分享了我对行业的一些看法和想法。演讲以英文形式进行&#xff0c;…

make_moons函数

生成半环形数据 sklearn.datasets.make_moons(n_samples100, shuffleTrue, noiseNone, random_stateNone) 参数&#xff1a; n_samples : 整数型, 可选&#xff0c;默认为100&#xff0c;产生的样本点的数量shuffle : 布尔型&#xff0c;可选填 (默认为True)&#xff0c;是否…

阿里巴巴罗汉堂发布最关乎人类未来的十大问题

来源&#xff1a;中国新闻网中新网杭州6月25日电 (记者 魏晞)25日&#xff0c;阿里巴巴倡议成立的罗汉堂发布最关乎人类未来的十大问题。200多位来自全球的顶尖学者、政界、企业界负责人应邀在杭州“西湖论剑”&#xff0c;闭门研讨十大问题&#xff0c;其中包括6位诺贝尔经济学…

Drive.ai轰然倒下:曾估值两亿,吴恩达夫妇站台,苹果将接盘部分可用技术人才...

来源&#xff1a;大数据文摘曾经估值两个亿美元&#xff0c;吴恩达夫妇亲自站台&#xff0c;风极一时的无人车创业公司Drive.ai轰然倒塌。本月20日&#xff0c;总部位于加州山景城的 Drive.ai 公司被证实已经向一家州政府机构递交了通知&#xff0c;表明即将关闭&#xff0c;并…