JPA OneToOne双向关系
程序员文章站
2022-04-22 16:10:39
...
1:1(双向)
关系被维护端 关系维护端(负责外键字段的更新)
主表 从表
public class IDCard{ public class Person{
private Person person; private IDCard iDCard;
@OneToOne(cascade = @OneToOne(cascade =
{ {
CascadeType.refresh,刷新 CascadeType.persist,保存
CascadeType.merge,更新 CascadeType.merge,更新
//CascadeType.remove,删除
CascadeType.refresh,刷新
}, },
//fetch = FetchType.立即加载(默认),
//optional = false
如果再关系维护端设置为不允许为空,
那么这里可以不设置
mappedBy= "iDCard" optional = false 代表是否可选,相当于
只要出现mapped那么就是关系被维护端 数据库中是否可以为空
)
@JoinColumn(name = "iDCard_id")外键名称
getPerson(){} getIDCard(){}
} }
1.在CascadeType中的类型分别对应EnityManager(实体管理器)中对应的方法。
2.在xxxxToxxxx中{
如果To后面是Many,加载方式为延迟加载,
如果To后面是One,加载方式
}
3.在保存的时候,先保存的是的IDCard,然后再保存Person(关系维护端),就可以一起级联保存到数据库。