博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(十)Hibernate的一对一关联关系
阅读量:6467 次
发布时间:2019-06-23

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

一、概述

 

 

我们以Company与Address类为例,介绍映射一对一关联关系的方法。 

一对一的关联方法有两种 
-按照外键映射:两个表任意一个表定义一个外键,来关联另一个表。 
-按照主键映射:一个表的主键同时作为外键,和另一个表的主键保持一致。

 

二、按照外键映射

(1)创建实体类

public class Company {                private Integer id;                private String name;                private Address address;                public Integer getId() {                    return id;                }                public void setId(Integer id) {                    this.id = id;                }                public String getName() {                    return name;                }                public void setName(String name) {                    this.name = name;                }                public Address getAddress() {                    return address;                }                public void setAddress(Address address) {                    this.address = address;                }            }             public class Address {                private Integer id;                private String name;                private Company company;                public Integer getId() {                    return id;                }                public void setId(Integer id) {                    this.id = id;                }                public String getName() {                    return name;                }                public void setName(String name) {                    this.name = name;                }                public Company getCompany() {                    return company;                }                public void setCompany(Company company) {                    this.company = company;                }            }

  (2)我们配置映射文件,我们在Company这一方设置外键来关联Address 有外键的一方要使用<many-to-one>元素来配置。

Company.hbm.xml         
Address.hbm.xml

  测试:

public class Demo {                    private Session session;                    @Test                    public void test() {                        //读取配置文件                        Configuration conf=new Configuration().configure();                        //根据配置创建factory                        SessionFactory sessionfactory=conf.buildSessionFactory();                        session = sessionfactory.openSession();                          Transaction ts=session.beginTransaction();                        Company c=new Company();                        c.setName("百度");                        Address a=new Address();                        a.setName("深圳");                        c.setAddress(a);                        a.setCompany(c);                        session.save(a);                        session.save(c);                         ts.commit();                        session.close();                        sessionfactory.close();                    }                }            默认情况下,一对一关联采用迫切左外连接检索策略。

  

三、按照主键映射

 

实体类不变,我们编写一下配置文件    address的表的id字段既是主键又是外键.        编写配置文件        Company.hbm.xml          
Address.hbm.xml
company

 

  

 

转载于:https://www.cnblogs.com/yuexiaoyun/p/9452411.html

你可能感兴趣的文章
不为技术而技术:大型网站架构演化解析
查看>>
Java文件清单列表
查看>>
js url传值中文乱码之解决之道
查看>>
Atitit.获取某个服务 网络邻居列表 解决方案
查看>>
Trusty TEE
查看>>
[LeetCode] Reverse String 翻转字符串
查看>>
学习iOS【3】数组、词典和集合
查看>>
Hessian 原理分析--转
查看>>
转: 基于netty+ protobuf +spring + hibernate + jgroups开发的游戏服务端
查看>>
ListView的优化
查看>>
Jenkins修改workspace和build目录
查看>>
django用户认证
查看>>
Linux rpm 命令参数使用详解[介绍和应用](转)
查看>>
SQL温故系列两篇(二)
查看>>
poj 1703 Find them, Catch them
查看>>
Atitit.mybatis的测试 以及spring与mybatis在本项目中的集成配置说明
查看>>
常用邮箱的服务器(SMTP/POP3)地址和端口总结
查看>>
【云计算】Docker监控相关资料
查看>>
MyEclipse项目中的java文件的图标变成空心的问题
查看>>
我从编程总结的 22 个经验
查看>>