Hibernate的学习总结(数据关联)
来源:互联网 发布:网络调试助手使用方法 编辑:程序博客网 时间:2024/05/14 04:03
Hibernate中的数据关联主要分为三大类:
1对1: 一个人对应一个身份证
1对多,多对1: 一个人有很多联系地址 ,多个用户拥有一个权限
多对多: 一个学生可以对应选很多门课,一门课可以对应有许多学生
一.1对1关系 --主键关联
一个人对应一个身份证
表结构:
-- 创建表
CREATE TABLE person
(
id VARCHAR(32) NOT NULL PRIMARY KEY ,
name VARCHAR(20) NOT NULL ,
age int
) ;
CREATE TABLE idcard
(
id VARCHAR(32) ,
serial VARCHAR(18) NOT NULL ,
expiry int ,
FOREIGN KEY(id) REFERENCES person(id) ON DELETE CASCADE
) ;
Person.java
IDCard.java
Person.hbm.xml 关联主表
Idcard.hbm.xml 关联从表
插入代码示例:
二. 1对多,多对1关系 --外键关联
1.1对多关系
一个人有很多联系地址
表结构
CREATE TABLE person
(
pid VARCHAR(32) NOT NULL PRIMARY KEY ,
name VARCHAR(20) NOT NULL ,
age INT
) ;
CREATE TABLE address
(
aid VARCHAR(32) NOT NULL PRIMARY KEY ,
name VARCHAR(50) NOT NULL ,
zipcode VARCHAR(10) NOT NULL ,
pid VARCHAR(32) ,
FOREIGN KEY (aid) REFERENCES person(pid) ON DELETE CASCADE
) ;
Person.java
Address.java
Person.hbm.xml 关联主表
Address.hbm.xml 关联从表
2.多对一关系
多个用户拥有一个权限
表结构
-- 创建表
CREATE TABLE person
(
id VARCHAR(32) PRIMARY KEY NOT NULL ,
name VARCHAR(20) NOT NULL ,
age INT ,
gid VARCHAR(32)
) ;
CREATE TABLE TGROUP
(
gid VARCHAR(32) PRIMARY KEY NOT NULL,
name VARCHAR(20)
) ;
Person.java
TGroup.java
Person.hbm.xml 关联主表
TGroup.hbm.xml 关联从表
一对多是将映射关系写在一的一端,多对一是将映射关系写在多的一端。一对多和多对一的映射策略是一致的,都是通过在"多"的一端添加一个外键指向"一"的一端,只是站的角度不同。
不管多对一还是一对多,都是在"多"的一端添加一个外键指向"一"的一端,只不过是多对一是在多的一端为其自己添外键,而一对多则是在一的一端为多的一端添加外主键。
3.多对多关系
一个学生可以对应选很多门课,一门课可以对应有许多学生
表结构
CREATE TABLE person
(
pid VARCHAR(32) NOT NULL PRIMARY KEY ,
name VARCHAR(20) NOT NULL ,
age INT
) ;
CREATE TABLE server
(
sid VARCHAR(32) NOT NULL PRIMARY KEY ,
name VARCHAR(20) NOT NULL
) ;
CREATE TABLE person_server
(
pid VARCHAR(32) ,
sid VARCHAR(32) ,
FOREIGN KEY (pid) REFERENCES person(pid) ON DELETE CASCADE ,
FOREIGN KEY (sid) REFERENCES server(sid) ON DELETE CASCADE
) ;
Person.java
Server.java
Person.hbm.xml
Server.hbm.xml
- Hibernate的学习总结(数据关联)
- Hibernate学习总结:OneToOne单向主键关联
- Hibernate学习总结:OneToOne双向主键关联
- Hibernate学习总结:ManyToOne单向关联
- Hibernate学习总结:OneToMany单向关联
- Hibernate学习总结:ManyToMany单向关联
- Hibernate学习总结:ManyToMany双向关联
- Hibernate学习之---Hibernate的关联映射
- hibernate学习——hibernate配置与关联总结
- Hibernate关联关系的精髓总结
- Hibernate的数据关联多对多
- Hibernate的学习之路二十(一对多的双向关联保存数据)
- Hibernate 关联映射总结
- Hibernate关联 配置总结
- hibernate关联总结
- Hibernate关联映射总结
- hibernate中关联总结
- Hibernate关联关系总结
- Ubuntu的ip设置
- sql server启动不了, MSSQL 18052错误: 9003,严重度: 20,状态: 1
- java获得各种时间
- 基于silverlight+wcf+bingmaps的水文信息检索系统开发总论
- VB 显示内存中的图片
- Hibernate的学习总结(数据关联)
- ADO.NET笔记一
- 写在工作满两年
- cacti实现短信报警v1.1
- MSSQL数据库日志清理
- fedora 14下uvc摄像头灰屏没有图像的问题原因及其解决办法
- 基于silverlight+wcf+bingmaps的水文信息检索系统之对实时雨水情数据库(讨论稿)的认识
- 编写 Android 触摸屏手势识别程序
- Y D L M是什么意思?