JPA#OneToOne
Posted luohaonan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JPA#OneToOne相关的知识,希望对你有一定的参考价值。
无力吐槽。
一对一,一个人有一个身份证号码、一个人有一条命,类似于这一种的就是一对一的关系。
涉及到的注解两个:
OneToOne
JoinColumn(
name="当前实体对应数据库表中的字段名称,这个字段是一对一关系中对方的主键,这个字段是本表中的外键",
referencedColumnName="这是个数据库表的字段名称,字段为当前表的外键所对应的另外一张表的主键"
)
举一个例子:一个学生有一个桌子
@Entity @Table(name="t_student") public class Student @Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="id") private Integer id; @Column(name="name") private String name; /** * JoinColumn的name值为:当前实体对应表的外键 * JoinColumn的JoinColumn的值为:当前实体对应表的外键所引用的表的主键 */ @OneToOne @JoinColumn(name="desk_id",referencedColumnName="id") private Desk desk; @Override public String toString() return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
@Entity @Table(name="t_desk") public class Desk @Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="id") private Integer id; @Column(name="name") private String name; @Override public String toString() return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
数据库表:
_
映射,无论是一对一或者是其他的映射形式,都在另外一个维度分为单向的映射,以及双向映射。其中双向映射时候,JSON序列化会产生死循环。
以上是关于JPA#OneToOne的主要内容,如果未能解决你的问题,请参考以下文章