Hibernate的学习(二)
---恢复内容开始---
一、多表的建表原则
1、一对多的关系:例如 一个客户有多个联系人;
表与表一对多的关系:在一对多时,多的表中添加一个外键,用来和一的表的主键。产生联系。
2、多对多的关系:例如 :一个用户可以有多个角色,一个角色可以包含多个用户;
多对对建表原则:创建第三张表(中间表),在中间表中至少两个字段,这两个字段分别指向多对多两个表的主键。(中间表和这两张表都是一对多关系)
3、一对一的关系:例如 一个人只能有一个身份证,一个身份证只能有一个人
建表:假设是一对多,在多的一方创建外键,指向一的主键,将外键设置为unique
二、配置映射文件
1.一对多(例如:Customer 和 LinkMan : 客户和联系人)
(1)在持久化类中,一的一方(LinkMan)创建多的一方(Customer)创建主键的方式:创建一个该类的对象
在LinkMan.hbm.xml中添加外键设置
(2)在持久化类中,多的一方(Customer)创建一的一方(LinkMan)创建主键的方式:创建一个Set集合
在Customer.hbm.xml中添加设置()
(3)设置级联更新
(4)设置级联删除 cascade="delete"
(5) 设置外键维护权:inverse = “false”:表示有外键维护权
二、对表对多表
1.在持久化类中分别设置Set<Class?> 对象;
2.配置映射文件
name : 在持久化类中的set集合的对象名称;
table : 是第三方表的表名;
inverse : 被动方设置为没有外键维护权;
key column = " 在第三方表中本表的主键名";
3.多对多的其他操作
---恢复内容结束---
Hibernate的学习(二)的更多相关文章
- Hibernate基础学习(二)—Hibernate相关API介绍
一.Hibernate的核心接口 所有的Hibernate应用中都会访问Hibernate的5个核心接口. (1)Configuration接口: 配置Hibernate,启动Hi ...
- Hibernate框架学习(二)——api详解
一.Configuration对象 功能:配置加载类,用于加载主配置,orm元数据加载. //1.创建,调用空参构造(还没有读配置文件) Configuration conf=new Configur ...
- SpringCloud学习(二):微服务入门实战项目搭建
一.开始使用Spring Cloud实战微服务 1.SpringCloud是什么? 云计算的解决方案?不是 SpringCloud是一个在SpringBoot的基础上构建的一个快速构建分布式系统的工具 ...
- (转)MyBatis框架的学习(二)——MyBatis架构与入门
http://blog.csdn.net/yerenyuan_pku/article/details/71699515 MyBatis框架的架构 MyBatis框架的架构如下图: 下面作简要概述: S ...
- emberjs学习二(ember-data和localstorage_adapter)
emberjs学习二(ember-data和localstorage_adapter) 准备工作 首先我们加入ember-data和ember-localstorage-adapter两个依赖项,使用 ...
- ReactJS入门学习二
ReactJS入门学习二 阅读目录 React的背景和基本原理 理解React.render() 什么是JSX? 为什么要使用JSX? JSX的语法 如何在JSX中如何使用事件 如何在JSX中如何使用 ...
- TweenMax动画库学习(二)
目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) Tw ...
- Hbase深入学习(二) 安装hbase
Hbase深入学习(二) 安装hbase This guidedescribes setup of a standalone hbase instance that uses the local fi ...
- Struts2框架学习(二) Action
Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器 ...
- Python学习二:词典基础详解
作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7862377.html 邮箱:moyi@moyib ...
随机推荐
- ArrayList 实现随机点名
package lijun.cn.demo1; import java.util.ArrayList; import java.util.Random; public class CallName { ...
- CodeForces1073E 数位dp+状压dp
http://codeforces.com/problemset/problem/1073/E 题意 给定K,L,R,求L~R之间最多不包含超过K个数码的数的和. 显然这是一道数位dp,在做的过程中会 ...
- 2017-12-18python全栈9期第三天第二节之str常用操作方法及for循环之判断字母数字组成
#!/user/bin/python# -*- coding:utf-8 -*-name = 'zd123'print(name.isalnum()) #由数字或字母组成print(name.isal ...
- SQL语法基础之ALTER语句
SQL语法基础之ALTER语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看ALTER的帮助信息 mysql> ? ALTER Many help items fo ...
- Spring JPA学习笔记
目录 什么是JPA? 引入配置 新建一个Entity Bean类 JPA的增删改查 新建操作接口 新建测试类 总结 什么是JPA? 什么是JDBC知道吧?数据库有Mysql,SQL Server,Or ...
- MySQL数据库权限体系介绍
本文主要向大家介绍了MySQL数据库权限体系,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 一.权限体系简介: MySQL的权限体系在实现上比较简单,相关权限信息主要存储在mys ...
- ACM-ICPC 2018 焦作赛区网络预赛 A Magic Mirror(签到)
https://nanti.jisuanke.com/t/31710 题意 若输入的是Jessie或jessie,输出Good guy!,否则输出Dare you say that again? 分析 ...
- 建立爬虫代理IP池
单线程构建爬虫代理IP池 #!/usr/bin/python3.5 # -*- coding:utf-8 -*- import time import tempfile from lxml impor ...
- MySQL 字符集问题
MySQL 支持许多字符集及其编码方案, 甚至是不同编码之间的转换. 在使用 MySQL 进行应用程序编程时, 常常会出现乱码现象, 这通常是由于客户端没有声明与 MySQL 服务器通信的字符串编码造 ...
- Java入门系列
包装类 基本数据类型之间的相互转换不是都可以制动转换的,而你强制转换又会出问题,比如String类型的转换为int类型的,那么jdk为了方便用户就提供了相应的包装类. 基本类型对应的包装类 创建一个包 ...