JPA——实体关系映射


单向关联:


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;
} 


持续更新中......................................................................................................................................................................






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值