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;”当你有比任何人所需要…

字符串的展开

30:字符串的展开 总时间限制:1000ms 内存限制:65536kB描述 在初赛普及组的“阅读程序写结果”的问题中&#xff0c;我们曾给出一个字符串展开的例子&#xff1a;如果在输入的字符串中&#xff0c;含有类似于“d-h”或者“4-8”的字串&#xff0c;我们就把它当作一种简写…

matlab画图显示中文

title(标题1,FontName,Microsoft YaHei UI)

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" #…

常见25种深度学习模型的github代码

1 Feed forward neural networks (FF or FFNN) and perceptrons (P) 前馈神经网络和感知机&#xff0c;信息从前&#xff08;输入&#xff09;往后&#xff08;输出&#xff09;流动&#xff0c;一般用反向传播&#xff08;BP&#xff09;来训练。算是一种监督学习。 对应的代…

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. 在集群…

使用iozone和bonnie测试磁盘IO

测试linux设备的磁盘IO可以用的工具有很多&#xff0c;主要使用的是iozone和bonnie 1.iozone 安装&#xff1a; 1.下载放到/root目录下&#xff0c;解压文件夹 2.cd iozone3_434/src/current 3.make linux 使用&#xff1a; ./iozone -Rab /root/iozone.xls -s 2G -i 0 -i 1 -y…

使用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;其中上海市开展了以建设城市神经元系…

python画图去掉边框

axplt.subplot(2,3,1) ... ax.spines[top].set_visible(False) ax.spines[right].set_visible(False) ax.spines[bottom].set_visible(False) ax.spines[left].set_visible(False)