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