博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibrenate关系映射(一对一外键关联)
阅读量:6243 次
发布时间:2019-06-22

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

一、一对一(单向):使用外部索引将其中的一个类作为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"/>

 

转载于:https://www.cnblogs.com/LindaBlog/p/5477762.html

你可能感兴趣的文章
SharePoint 2013 禁用搜索服务
查看>>
[原]一个针对LVS的压力测试报告
查看>>
拥塞控制和流量控制
查看>>
[LeetCode] Sum Root to Leaf Numbers
查看>>
IO设计模式:Reactor和Proactor对比
查看>>
Qt Widgets——动作类与小部件菜单项
查看>>
ASP.NET MVC搭建项目后台UI框架—5、Demo演示Controller和View的交互
查看>>
[转]动态规划解最长公共子序列问题
查看>>
WorldWind源码剖析系列:影像存储类ImageStore、Nlt影像存储类NltImageStore和WMS影像存储类WmsImageStore...
查看>>
ORA-00600: 内部错误代码, 参数: [kqlnrc_1]
查看>>
Android Studio常用小技巧
查看>>
和为S的两个数字
查看>>
NPOI导出模板样式
查看>>
jsp请求由servlet响应的方式
查看>>
16 款最流行的 JavaScript 框架
查看>>
使用awrextr.sql导出awr原始数据
查看>>
分享一次失败的项目实践经验
查看>>
jedispool 连 redis
查看>>
PadLeft 补零
查看>>
注意了,99%通过天天特价的技巧!
查看>>