Hibernatede 一对多映射配置方法(分享)
以公司和员工为例:公司是一,员工是多
第一步 创建两个实体类,公司和员工
写核心配置文件hibernate.cfg.xml
写映射配置文件Company.hbm.xml 和Worker.hbm.xml
第二步 让两个实体类之间互相表示
(1)在公司实体类里面表示拥有多个员工,把员工的集合作为属性,写入公司的实体类。
//在公司实体类里面表示拥有多个员工,一个公司有多个员工 //hibernate要求使用集合表示多的数据,使用set集合 private Set<Worker> workers=new HashSet<Worker>(); public Set<Worker> getWorkers() { return workers; } public void setWorkers(Set<Worker> workers) { this.workers = workers; }
(2)在员工实体类里面表示所属公司
- 一个员工只能属于一个公司
// 在员工实体类里面表示所属公司,一个员工只能属于一个公司,把公司类作为员工的一个属性,写入员工类。 private Company company; public Company getCompany() { return company; } public void setCompany(Company company) { this.company = company; }
第三步 配置映射关系
(1)一个实体类对应一个映射文件
(2)把映射最基本的配置完成
(3)在映射文件中,配置一对多关系
- 在公司映射文件中,配置所有的员工
1 set标签(class标签的子标签)表示员工的集合
name属性: 属性值写的是公司实体类里面表示员工的set集合名称
2 key标签(set标签的子标签)
column属性值:外键名称
3 one-to-many标签(set标签的子标签):
class属性:里面写多的一方的实体类全路径(即员工类)
代码:
<set name="workers"> <key column="c_w_id"/> <one-to-many class="entity.Worker"/> </set>
- 在员工映射文件中,配置其所属公司
使用many-to-one标签(class标签的子标签),表示员工所属公司
1 name属性:因为在员工实体类使用company对象表示,写company名称
2 class属性:Company全路径
3 column属性:外键名称(要和公司映射文件中的外键名称保持一致)
代码:
<many-to-one name="company" class="entity.Company" column="c_w_id"> </many-to-one>
第四步 创建核心配置文件,把映射文件引入到核心配置文件中
<!-- 第三部分: 把映射文件放到核心配置文件中 必须的--> <mapping resource=" entity/Company.hbm.xml"/>
以上这篇Hibernatede 一对多映射配置方法(分享)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Hibernate映射解析之关联映射详解
Hibernate中的关联映射 关联关系 平时开发中,类与类之间最普遍的的关系就是关联关系,而且关联是有方向的. 以部门(Dept)和员工(Employee)为例:一个部门下有多个员工,而一个员工只能属于一个部门. 从Employee到Dept的关联就是 多对一 关联. 这就说明 每个Employee对象只会引用一个Dept对象,因此在Employee类中应该定义一个Dept类型的属性,来引用所关联的Dept对象. 从Dept到Employee的关联就是 一对多 关联.这就说明 每个Dept对象
-
举例讲解Java的Hibernate框架中的多对一和一对多映射
多对一(Many-to-One)映射 多对一(many-to-one)关联是最常见的关联关系,其中一个对象可以与多个对象相关联.例如,一个相同的地址对象可以与多个雇员的对象相关联. 定义RDBMS表: 考虑一个情况,我们需要员工记录存储在EMPLOYEE表,将有以下结构: create table EMPLOYEE ( id INT NOT NULL auto_increment, first_name VARCHAR(20) default NULL, last_name VARCHAR(20
-
Mybatis中的高级映射一对一、一对多、多对多
学习hibernate的时候,小编已经接触多各种映射,mybatis中映射有到底是如何运转的,今天这篇博文,小编主要来简单的介绍一下mybatis中的高级映射,包括一对一.一对多.多对多,希望多有需要的小伙伴有帮助,小编主要从四个方面进行介绍,订单商品数据模型.一对一查询.一对多查询.多对多查询. 一.订单商品数据模型 1.数据库执行脚本,如下所示: <span style="font-family:Comic Sans MS;font-size:18px;">CREATE
-
java Hibernate多对多映射详解及实例代码
java Hibernate多对多映射 前言: 一.单向多对多 单向多对多的例子用人和职位来举例,一个人可以有多个职位,一个职位会有多个人.单向多对多是指只能在一端来查询获取另一端的内容.多对多的关系在生成关系模型时会生成对象之前的关联表,关联表中存放着两个关系表的主键,它们的关系如下所示: 代码部分: (1)映射和关系类 因为是单向的关系,所以只需要在一端进行维护,所以我们需要在User.hbm.xml配置文件中添加<many-to-many>标签,并在标签中加上对应的列关系,在<s
-
浅谈hibernate中多表映射关系配置
1.one-to-many 一对多关系的映射配置(在一的一方实体映射文件中配置) <!-- cascade属性:级联操作属性 save-update: 级联保存,保存客户时,级联保存客户关联的联系人 delete:级联删除,删除客户时,级联删除客户关联的联系人 all:级联保存+级联删除 --> <!-- inverse属性:设置是否不维护关联关系 true:不维护关联 false(默认值):维护关联 --> <!-- 一对多 --> <set name=&quo
-
Hibernatede 一对多映射配置方法(分享)
以公司和员工为例:公司是一,员工是多 第一步 创建两个实体类,公司和员工 写核心配置文件hibernate.cfg.xml 写映射配置文件Company.hbm.xml 和Worker.hbm.xml 第二步 让两个实体类之间互相表示 (1)在公司实体类里面表示拥有多个员工,把员工的集合作为属性,写入公司的实体类. //在公司实体类里面表示拥有多个员工,一个公司有多个员工 //hibernate要求使用集合表示多的数据,使用set集合 private Set<Worker> workers=n
-
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
对于学习php的新手,由于网上的配置方法都是很久之前的,及时性不高,环境配置往往令人很头疼,我初学php配置环境时配置了3个晚上,每次总是会出现这样或那样的问题,如今把最新版的PHP5.5.15+Apache2.4.10+MySQL5.6.20,win7x86的配置方法分享给大家,64位的同理,不过下载的软件需要也是64位的. 环境:win7 32.(64位的同理,下载相关软件必须是对应的64位版本) PHP5.5.15(php-5.5.15-Win32-VC11-x86.zip) Apache
-
基于tomcat映射路径配置方法分享
tomcat请求头配置 在使用postman测试的时候(携带参数)我们经常会发现浏览器一个错误:request header is too large,意思是请求头字段太长了.在这里需要配置下tomcat请求头长度. tomcat-service.xml <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443&q
-
FCKeditor 2.6.6在ASP中的安装及配置方法分享
首先从FCKEditor官方下载最新的版本我们提供的下载地址 http://www.jb51.net/codes/21294.html 安装及配置方法:一.打开文件夹发现有许多文件对于ASP来说是用不到的:删除FCKEditor2.6.6中不必要的文件:解压缩FCKeditor_2.6.6.zip到你网站根目录 fckeditor文件夹中,同时把文件夹内带_的文件夹和文件一并删除:1.fckeditor目录下除editor目录.fckconfig.js.fckeditor.asp.fckedit
-
win2003+IIS下安装Xcache加速的配置方法分享
在论坛后台看了半天,只有内存优化一个还没有做,但是自己以前又没有弄过,只有学了. 论坛支持Memcache.eAccelerator.Alternative PHP Cache(APC).Xcache 四种优化方式,在网上搜了很久,Memcache看的有点头晕,eAccelerator也有点莫名奇妙,最终选择Xcache. 经过一番摸索后把这个加速搞定了,手机进的时候都快了很多,效果看起来还是挺明显的,现在把配置方法写下来,以免以后重装系统或换服务器什么的又忘了怎么弄. Xcache下载地址:
-
ckeditor的使用和配置方法分享
一.使用方法: 1.在页面<head>中引入ckeditor核心文件ckeditor.js <script type="text/javascript" src="ckeditor/ckeditor.js"></script> 2.在使用编辑器的地方插入HTML控件<textarea> <textarea id="TextArea1" cols="20" rows=&quo
-
linux(centos5.5)/windows下nginx开启phpinfo模式功能的配置方法分享
经过志文工作室测试有效的相关配置主要内容如下: 复制代码 代码如下: location ~ \.php(.*)$ { fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param P
-
在Nginx服务器上屏蔽IP的一些基本配置方法分享
采集和防止采集是一个经久不息的话题,一方面都想搞别人的东西,另一方面不想自己的东西被别人搞走. 本文介绍如何利用nginx屏蔽ip来实现防止采集,当然也可以通过iptable来实现. 1.查找要屏蔽的ip awk '{print $1}' nginx.access.log |sort |uniq -c|sort -n nginx.access.log 为日志文件, 会到如下结果,前面是ip的访问次数,后面是ip,很明显我们需要把访问次数多的ip并且不是蜘蛛的ip屏蔽掉,本例当中我们屏蔽掉 165
-
Oracle客户端的安装与远程连接配置方法分享
一.Oracle客户端与服务器端的通讯机制 1.OracleNet协议 如下图所示,Oracle通过Oracle Net协议实现客户端与服务器端的连接以及数据传递.OracleNet是同时驻留在Oracle数据库服务器端和客户端上的一个软件层,它封装了TCP/IP协议,负责建立与维护客户端应用程序到数据库服务器的连接. 如下图所示,客户端发出的请求首先通过OracleNet协议转换,转换成可以通过网络传输的信息,通过TCP/IP网络将请求传输到数据库服务器端:服务器端接受到客户请求后要通过Ora
-
linux下mysql数据库单向同步配置方法分享
又叫做主从复制,是通过二进制日志文件完成的,注意:mysql 数据库的版本,两个数据库版本要相同 系统环境: 主服务器master IP: 192.168.0.88 从服务器slave IP: 192.168.0.99 单向同步 注意要点 1.只需要把需要同步的数据库备份传到从数据库上,其它任何东西都不需要 2.在从库上还原数据库时,一定先要建了同名数据库,否则还原会提示错误 3.在制定更新点时,一定要在同步进程还没启动前操作 主服务器上配置 对my.cnf进行修改需要重启动数据库设置才会生效,
随机推荐
- 基于在生产环境中使用php性能测试工具xhprof的详解
- Ubuntu 搭建基于Docker的LNMP+Redis的开发环境(图文)
- 使用xtrabackup实现mysql备份
- Android Studio升级到3.0 Terminal 中文显示异常解决
- Access使用查询
- JavaScript的函数式编程基础指南
- Nginx+PHP+MySQL双机互备、全自动切换方案
- 安全虚拟主机配置技巧
- struts2.3.24+spring4.1.6+hibernate4.3.11+mysql5.5.25开发环境搭建图文教程
- js判断一个元素是否为另一个元素的子元素的代码
- Android提高之MediaPlayer音视频播放
- Ajax xmlHttpRequest的status的值的含义
- python使用xlrd实现检索excel中某列含有指定字符串记录的方法
- python实现斐波那契数列的方法示例
- mysql 存储过程中变量的定义与赋值操作
- sxs.exe的查杀bat代码
- js中自定义方法实现停留几秒sleep
- select列表内容交换的js实现代码
- winkey:高手常用的五个组合按钮
- 深入解析Java编程中的boolean对象的运用