1.树状结构设计(很重要)
举个例子,一个大公司下面有若干分公司,分公司下又有若干分公司,这样在每一个公司实体类中我们可以利用树状结构解决问题
定义一个公司对象的引用指向父类公司,定义公司的集合Set指向子类公司,这样在同一个类中使用OneToMany和ManyToOne,例子代码如下
package com.fendou.hibernate.model;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
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.OneToMany;
@Entity
public class Org {
private int id;
private String name;
private Org parent;
private Set<Org> children = new HashSet<Org>();
@OneToMany(mappedBy="parent",cascade=CascadeType.ALL,fetch=FetchType.EAGER)
public Set<Org> getChildren() {
return children;
}
public void setChildren(Set<Org> children) {
this.children = children;
}
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@ManyToOne
@JoinColumn(name="parentId")
public Org getParent() {
return parent;
}
public void setParent(Org parent) {
this.parent = parent;
}
}