Life is long ......

继续向前 永不停止

   :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  26 随笔 :: 0 文章 :: 5 评论 :: 10万 阅读

OneToOne

 

public classEmployee implements Serializable {
 
         ……
 
    @OneToOne(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
 
    @JoinColumn(name = "ADDR_ID")
 
  private Address address;
 
… …
 
}

 

 

ManyToOne

 

public classEmployee implements Serializable {
 
         ……
 
    @ManyToOne(fetch = FetchType.LAZY)
 
    @JoinTable(name = "EMP_JOB", joinColumns = @JoinColumn(name = "EMP_ID"), inverseJoinColumns = @JoinColumn(name = "TITLE_ID"))
 
    //連接表 joinColumns參考主表的主鍵的列,inverseJoinColumns參考字段或屬性生成的表格的主鍵的列
 
  private JobTitle jobTitle;
 
 
    @ManyToOne(fetch = FetchType.LAZY)
 
    @JoinColumn(name = "MANAGER_ID")
 
  private Employee manager;
 
… …
 
}

 

 

OneToMany

 

public classEmployee implements Serializable {
 
         ……
 
    @OneToMany(mappedBy = "manager") //manager字段擁有關係
 
    private List<Employee> managedEmployees = newArrayList<Employee>();
 
 
    @OneToMany(mappedBy = "owner", cascade = CascadeType.ALL, orphanRemoval = true)
 
  private List<PhoneNumber> phoneNumbers = newArrayList<PhoneNumber>();
 
 
    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
 
    @JoinColumn(name="EMP_ID")
 
    private List<Degree> degrees = newArrayList<Degree>();
 
         ……
 
}

 

 

ManyToMany

public classEmployee implements Serializable {
 
         ……
 
    @ManyToMany
 
    //連接表
 
    @JoinTable(name = "PROJ_EMP", joinColumns = @JoinColumn(name = "EMP_ID"), inverseJoinColumns = @JoinColumn(name = "PROJ_ID"))
 
   private List<Project> projects = newArrayList<Project>();
 
… …
 
}

 

 

联合主键映射

ManyToOne OneToMany ManyToMany映射,而且采用JoinTable映射,会出现联合主键,即双主键。

posted on   patrickwai  阅读(5731)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示