@OneToMany或@ManyToOne的用法-annotation关系映射篇
    
package com.pandy.ssh4.domian;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name = "ParentOne")
public class ParentOne {
  private int p1Id;
  private String p1Name;
  private String p1Desc;
  private Set<ParentTwo> parentTwos;
  @Id
  @GeneratedValue
  @Column(name = "p1_id", unique = true, nullable = false)
  public int getP1Id() {
    return p1Id;
  }
  public void setP1Id(int p1Id) {
    this.p1Id = p1Id;
  }
  @Column(name = "p1_name", length = 100, nullable = true)
  public String getP1Name() {
    return p1Name;
  }
  public void setP1Name(String p1Name) {
    this.p1Name = p1Name;
  }
  @Column(name = "p1_desc", length = 100, nullable = true)
  public String getP1Desc() {
    return p1Desc;
  }
  public void setP1Desc(String p1Desc) {
    this.p1Desc = p1Desc;
  }
  @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "parentOne")
  // 这里配置关系,并且确定关系维护端和被维护端。mappBy表示关系被维护端,只有关系端有权去更新外键。
  // 这里还有注意OneToMany默认的加载方式是赖加载。当看到设置关系中最后一个单词是Many,那么该加载默认为懒加载
  public Set<ParentTwo> getParentTwos() {
    return parentTwos;
  }
  public void setParentTwos(Set<ParentTwo> parentTwos) {
    this.parentTwos = parentTwos;
  }
}
package com.pandy.ssh4.domian;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name = "ParentTwo")
public class ParentTwo {
  private int p2Id;
  private String p2Name;
  private String p2Remark;
  private ParentOne parentOne;
  @Id
  @GeneratedValue
  @Column(name = "p2_id", nullable = false, unique = true)
  public int getP2Id() {
    return p2Id;
  }
  public void setP2Id(int p2Id) {
    this.p2Id = p2Id;
  }
  @Column(name = "p2_name", nullable = true)
  public String getP2Name() {
    return p2Name;
  }
  public void setP2Name(String p2Name) {
    this.p2Name = p2Name;
  }
  @Column(name = "p2_remark", nullable = true)
  public String getP2Remark() {
    return p2Remark;
  }
  public void setP2Remark(String p2Remark) {
    this.p2Remark = p2Remark;
  }
  // 这里设置JoinColum设置了外键的名字,并且ParentTwo是关系维护端
  @ManyToOne(fetch = FetchType.LAZY)
  @JoinColumn(name = "p1_id")
  public ParentOne getParentOne() {
    return parentOne;
  }
  public void setParentOne(ParentOne parentOne) {
    this.parentOne = parentOne;
  }
}