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