Hibrenate关系映射(一对一外键关联)
一、一对一(单向):使用外部索引将其中的一个类作为parent,相对应的一个就是子类,并且参照父
类的主键ID来生成数据库表。(比如:可以将husband中设置一个wife_id对应wife中的主键id)
1.Wife 类:生成get、set方法
@Entity//注意使用注解
public class Wife {
private int id;
private String name;
@Id//注意使用注解
@GeneratedValue//注意使用注解
public int getId() {
return id;
}
}
2.Husband类,生成get、set方法
@Entity
public class Husband {
private int id;
private String name;
private Wife wife;
@Id
@GeneratedValue
public int getId() {
return id;
}
public String getName() {
return name;
}
@OneToOne
@JoinColumn(name="wife_id")//映射:设置id的name,如果不设置,则系统默认设置一个名字
public Wife getWife() {
return wife;
}
}
注:可以使用Power Design(反向工程)将数据库表表反向出来看效果。
二、一对一(双向):方法同上,只是在两个类中都要设置对应的另外一个类(private Husband
husband; 生成get set方法)的但是会导致其中一个外加的关联索引是冗余的,可以通过@OneToOne
(mappedBy="wife")解决。相当于告诉系统,要以wife为主导,否则将找不到Husband。
1.Wife类:生成get、set方法
@Entity
public class Wife {
private int id;
private String name;
private Husband husband;//设置Husband类的一个对象,并生成get.set方法
}
注:凡是双向关联就必须设置mappedBy,但是没必要,因为设置一次就行。
2.Husband类:生成get、set方法
@Entity
public class Husband {
private int id;
private String name;
private Wife wife;
@Id
@GeneratedValue
public int getId() {
return id;
}
public String getName() {
return name;
}
@OneToOne(mappedBy="wife")//要以wife为指导才能找到Husband
public Wife getWife() {
return wife;
}
hibernate.xml文件的设置:注意把新建的两个类注册到mapping中
<mapping class="com.cqvie.model.Husband"/>
<mapping class="com.cqvie.model.Wife"/>
Hibrenate关系映射(一对一外键关联)的更多相关文章
- Hibernate,关系映射的多对一单向关联、多对一双向关联、一对一主键关联、一对一外键关联、多对多关系关联
2018-11-10 22:27:02开始写 下图内容ORM.Hibernate介绍.hibername.cfg.xml结构: 下图内容hibernate映射文件结构介绍 下图内容hibernate ...
- Java基础-SSM之mybatis一对一外键关联
Java基础-SSM之mybatis一对一外键关联 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.准备测试环境(创建数据库表) 1>.创建husbandsfk和wife ...
- Hibernate5.2之一对一外键关联(五)
Hibernate5.2之一对一外键关联(五) 一.简介 上篇文章中笔者介绍了Hibernate关联关 ...
- Hibernate学习(二补充)关系映射----基于外键的双向一对一
刚刚写的是基于外键的单向一对一. 那么双向一对一就是在单向一对一的基础上稍微改动就可以了. account.java和account.hbm.xml都不用变动 只要我们小小的变动address.j ...
- hibernate5(12)注解映射[4]一对一外键关联
在实际博客站点中,文章内容的数据量非常多,它会影响我们检索文章其他数据的时间,如查询公布时间.标题.类别的等. 这个时候,我们能够尝试将文章内容存在还有一张表中,然后建立起文章--文章内容的一对一映射 ...
- Hibernate学习(二)关系映射----基于外键的单向一对一
事实上,单向1-1与N-1的实质是相同的,1-1是N-1的特例,单向1-1与N-1的映射配置也非常相似.只需要将原来的many-to-one元素增加unique="true"属性, ...
- hibernate 关系映射之 主键关联一对一
单向双向在数据库中没有区别,但是在java程序中有区别. 在程序中:双向的通过一个就可以找到另一个,单向的通过设置了对应关系的类可以找到它所对应的类,反过来就不行. 注解方式单向主键关联: 和 ...
- Hibernate 再接触 关系映射 一对一单向外键关联
对象之间的关系 数据库之间的关系只有外键 注意说关系的时候一定要反面也要说通 CRUD 数据库之间设计 主键关联 单向的外键关联 中间表 一对一单向外键关联 Husband.java package ...
- hibernate 关系映射之 单向外键关联一对一
这里的关系指的是对象与对象之间的关系 注解方式单向关联一对一: //这个类描述的husband是一个对应一个wife的 import javax.persistence.Entity; import ...
随机推荐
- SSD详解
This results in a significant improvement in speed for high-accuracy detection(59 FPS with mAP 74.3% ...
- 9、Python-文件操作
打开关闭文件 # 打开一个已经存在的文件,或者创建一个新文件 f = open('test.txt', 'w') # 关闭这个文件 f.close() 访问模式 说明 r 以只读方式打开文件.文件的指 ...
- python-web开发环境搭建
一.安装distribute或setuptools,我用的distribute 下载链接:https://pypi.python.org/pypi/distribute [root@yeebian o ...
- Winform程序双向绑定
程序比较简单,一看就明白,主要需要实现INotifyPropertyChanged using System; using System.Collections.Generic; using Syst ...
- C# 窗体最大化(自适应任务栏位置)
this.FormBorderStyle = FormBorderStyle.None; this.Location=Screen.PrimaryScreen.WorkingArea.Location ...
- linux系统中查看己设置iptables规则
1.iptables -L 查看filter表的iptables规则,包括所有的链.filter表包含INPUT.OUTPUT.FORWARD三个规则链. 说明:-L是--list的简写,作用是列出规 ...
- 16. Spring boot 错误页面
默认效果:1).浏览器,返回一个默认的错误页面 1.1 请求头 1.2返回结果 2).如果是其他客户端,默认响应一个json数据 2.1请求头 2.2返回结果 { "timestamp& ...
- 工控安全入门之Modbus(转载)
工控安全这个领域比较封闭,公开的资料很少.我在读<Hacking Exposed Industrial Control Systems>,一本16年的书,选了的部分章节进行翻译,以其抛砖引 ...
- SNMP收集
http://velep.com/archives/416.html 协议基本格式
- fcn16s