使用注解完成@OneToOne关系的构建

项目当前存在2张表account及Phone,两个表有各自的主键Id,Phone通过表内的account_id实现对account表的1对1,通过如下配置可完成OneToOne关系的构建

@Entity
@Table(name = "account")
public class Account implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "id", length = 40 ,insertable=false ,updatable=false)
    private String id;
    @OneToOne(fetch = FetchType.LAZY,optional = false,mappedBy="account")
    private Phone phone;

    public Account() {
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

}

@Entity
@Table(name = "phone")
public class Phone implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "id", length = 40 ,insertable=false ,updatable=false)
    private String id;
 
   @OneToOne(cascade = CascadeType.ALL)
   @JoinColumn(name="account_id")
private Phone phone; public Account() { } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; }

}

注意点是:在account表中mappyedBy不是填写account_id而是account,这个account并非是表明,而是体现account_id的功能,注解会自动为它加上_id并配对

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值