一个部门表,存在自关联关系:
一个部门有一个父部门,有多个子部门,字段如下
`id` bigint(20) NOT NULL, -- pk
`description` varchar(255) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL,
`parentId` bigint(20) DEFAULT NULL,
实体如下:
@Entity
public class Department {
private Long id;
private String name;
private String description;
private Department parent;
private Set<Department> children;
@Id
@TableGenerator(name="pk_generator_department",table="pkgenerator",pkColumnName="tableName",pkColumnValue="department",valueColumnName="value",initialValue=1,allocationSize=1)
@GeneratedValue(strategy=GenerationType.TABLE,generator="pk_generator_department")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@ManyToOne
@JoinColumn(name="parentId")
public Department getParent() {
return parent;
}
public void setParent(Department parent) {
this.parent = parent;
}
@OneToMany(targetEntity=Department.class,mappedBy="parent")
public Set<Department> getChildren() {
return children;
}
public void setChildren(Set<Department> children) {
this.children = children;
}
}