博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate一对一关联映射配置
阅读量:6305 次
发布时间:2019-06-22

本文共 2311 字,大约阅读时间需要 7 分钟。

一对一关联

Hibernate提供了两种映射一对一关联关系的方式:按照外键映射和按照主键映射。下面以员工账号和员工档案表为例,介绍这两种映射方式,并使用这两种映射方式分别完成以下持久化操作:

(1)保存员工档案的同时分配给员工一个账号。

(2)加载员工档案的同时加载账号信息。

按照外键映射:

关系图:

①创建实体类:Resume、Users 并封装属性

1 public class Resume { 2     //档案id 3     private Integer resid; 4     //档案名称 5     private String resname; 6     //档案编号 7     private String rescardno; 8     //员工对象 9     private Users users;10 }
1 public class Users { 2    //员工id 3     private Integer userid; 4     //员工姓名 5     private String username; 6     //员工密码 7     private String userpass; 8     //档案对象 9     private Resume resume; 10  }

② 配置小配置 Users.hbm.xml

注:property-ref="users" 表明Resume的users属性建立了从Users对象到Resume对象的关联

1 
2 5
6
7
8
9
10
11
12
13
14
15

Resume.hbm.xml

注:因为Resume为外键表 植入<many-to-one>元素 并设置属性unique=“true” 确保用户档案的列只能是唯一的, 一个档案对应一个用户编号

1 
2 4
5
6
7
8
9
10
11
12 13
14
15
16

③ 大配置进行关联小配置

1 
2
3

测试类:

1      /* 2      * 添加 3      */ 4     @Test 5     public void addTest(){ 6         //创建用户对象 7         Users u=new Users(); 8         u.setUsername("张三1"); 9         u.setUserpass("003");10         //创建档案对象11         Resume r=new Resume();12         r.setResname("大学文凭1");13         r.setRescardno("003");14         //关联15         u.setResume(r);16         r.setUsers(u);17         //保存档案,员工自动save18         session.save(r);19         System.out.println("save ok!!!");20     21     }

按照主键映射:

关系图如下:

实体类同上

其次就是小配置的更改。Resume为主键表,Users的Userid既是主键又是外键 因此植入元素generator的类型为foreign主键

<one-to-one>植入属性constrained 用来约束 在底层数据表中植入外键

Users.hbm.xml配置文件如下:

1 
2 5
6
7
8
9
resume210
11
12
13
14
15
16
17

Resume.hbm.xml配置如下:

1 
2 4
5
6
7
8
SEQ_NUM 9
10
11
12
13
14
15
16

转载于:https://www.cnblogs.com/Zhangmin123/p/5855524.html

你可能感兴趣的文章
延时任务和定时任务
查看>>
linux下的权限问题
查看>>
教你如何使用Flutter和原生App混合开发
查看>>
Spring Boot 整合redis
查看>>
CSS hover改变背景图片过渡动画生硬
查看>>
JDBC(三)数据库连接和数据增删改查
查看>>
淘宝应对"双11"的技术架构分析
查看>>
ssh
查看>>
订单的子单表格设置颜色
查看>>
Office365 Exchange Hybrid 番外篇 ADFS后端SQL群集(一)
查看>>
9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路...
查看>>
lvs fullnat部署手册(三)rs内核加载toa篇
查看>>
C++策略模式
查看>>
我的友情链接
查看>>
oracle表分区详解
查看>>
网络编程中常见结构体
查看>>
SSL/TLS原理详解
查看>>
Docker 自定义SSH服务镜像
查看>>
JavaScript强化教程 —— Cocos2d-JS自动JSB绑定规则修改
查看>>
configure: error: in `/root/httpd-2.2.11/srclib/apr': c
查看>>