hibernate中的自关联
之前做过一个项目,里面有这样一个关系的存在——车间与班组,班组隶属于车间,一个车间包含一个或多个班组,当时设计时统一用Unit对象表示
public class Unit {
//部门类
private Integer unitId;
private String unitName;
private Unit unit;//上级部门
}
感觉没毛病,现在看来图样图森破……
自关联关键在实体的定义,这个实体既是上级部门,也是下级部门;上级部门就会包含下级部门,下级部门也会包含上级部门,从关系上可以知道,多个下级部门对应一个上级部门
实体类(Unit)
package com.hibernate.beans;
import java.util.HashSet;
import java.util.Set;
/**
* 部门类
* @author 浪丶荡
*
*/
public class Unit {
//域属性
private Integer unitId;
private String unitName;
//关联属性
private Unit leaderUnit;//上级部门
private Set<Unit> childUnits;//下级部门
public Unit() {
childUnits = new HashSet<Unit>();
}
public Unit(String unitName) {
this();
this.unitName = unitName;
}
public Integer getUnitId() {
return unitId;
}
public void setUnitId(Integer unitId) {
this.unitId = unitId;
}
public String getUnitName() {
return unitName;
}
public void setUnitName(String unitName) {
this.unitName = unitName;
}
public Unit getLeaderUnit() {
return leaderUnit;
}
public vo