JPA——实体关系映射
程序员文章站
2022-04-23 11:57:39
...
单向关联:
Cascade:属性表示与此实体一对一关联的实体的联级样式类型。
CascadeType.PERSIST (级联新建)
CascadeType.REMOVE (级联删除)
CascadeType.REFRESH (级联刷新)
CascadeType.MERGE (级联更新)中选择一个或多个
CascadeType.ALL 表示选择上面全部四项
说明:在定义关系时经常会涉及是否定义Cascade(级联处理)属性,担心造成负面影响
Fetch:属性是该实体的加载方式,有两种:LAZY和EAGER
FetchType.EAGER:这将要求持续性提供程序运行时必须迫切获取数据
FetchType.LAZY:这将提示持续性提供程序在首次访问数据(如果可以)时应不急于获取数据
mappedBy:属性用于双向关联实体时,标注在不保存关系的实体中
@JoinColumn:用于注释表中的字段,与@Column不同的是它要保存表与表之间关系的字段;
一对一单向关联示例:
客户实体类Customer
@Entity
@Table(name="customer")
public class CustomerEO implement Serializable{
@Id
private int id;
@OneToOne(casade={CascadeTypeType.ALL})
@JoinColumn(name="address_id"insertable = false, updatable = false,referencedColumnName="id")
private AddressEO address;
}
地址薄类Address
@Entity
@Table(name="address")
public class AddressEO implement Serializable{
@Id
private int id;
....
}
一对一双向关联示例
客户实体类Customer
@Entity
@Table(name="customer")
public class CustomerEO implement Serializable{
@Id
@GeneratedValue(stragegy=GenerationType=AUTO)
private int id;
@Column(name = "address_id")
private String addressId;
}
地址薄类Address
@Entity
@Table(name="address")
public class AddressEO implement Serializable{
@Id
@GeneratedValue(stragegy=GenerationType=AUTO)
private int id;
@OneToOne(cascade=CascadeType.ALL, fetch = FetchType.EAGER, mappedBy="addressId")
private Custome customer;
}
持续更新中......................................................................................................................................................................
上一篇: 卢绾为什么要*?原因是什么
推荐阅读
-
详解PHP的Laravel框架中Eloquent对象关系映射使用
-
研究Python的ORM框架中的SQLAlchemy库的映射关系
-
Python ORM框架SQLAlchemy学习笔记之关系映射实例
-
netcore 2.2 使用 AutoMapper 实现实体之间映射
-
Mybaits 源码解析 (八)----- 全网最详细,没有之一:结果集 ResultSet 自动映射成实体类对象(上篇)
-
JPA中实现双向多对多的关联关系(附代码下载)
-
【Web API系列教程】3.4 — 实战:处理数据(处理实体关系)
-
JPA中实现双向一对多的关联关系
-
JPA中实现双向一对一的关联关系
-
Mybatis自定义SQL的关系映射、分页、排序功能的实现