`

注解方式,自关联一对多,多对一

 
阅读更多

一个部门表,存在自关联关系:

一个部门有一个父部门,有多个子部门,字段如下

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

}

 

}

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics