单向关联:
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;
....
}
@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;
}
持续更新中......................................................................................................................................................................