Node類:java
package com.bjsxt.hibernate.樹狀映射; import java.util.Set; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; /** * 節點*/ @Entity public class Node { private int id; //標識符 private String name; //節點名稱 private int level; //層次,爲了輸出設計 private boolean leaf; //是否爲葉子節點,這是爲了效率設計,無關緊要 //父節點:由於多個節點屬於一個父節點,所以用hibernate映射關係說是「多對一」 private Node parent; //子節點:由於一個節點有多個子節點,所以用hibernate映射關係說是「一對多」 private Set<Node> 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; } public int getLevel() { return level; } public void setLevel(int level) { this.level = level; } public boolean isLeaf() { return leaf; } public void setLeaf(boolean leaf) { this.leaf = leaf; } @ManyToOne @JoinColumn(name="pid") public Node getParent() { return parent; } public void setParent(Node parent) { this.parent = parent; } @OneToMany(mappedBy="parent") public Set<Node> getChildren() { return children; } public Node(int id, String name, int level, boolean leaf, Node parent, Set<Node> children) { super(); this.id = id; this.name = name; this.level = level; this.leaf = leaf; this.parent = parent; this.children = children; } public Node() { super(); // TODO Auto-generated constructor stub } public void setChildren(Set<Node> children) { this.children = children; } }
筆記推薦:馬士兵hibenate講義筆記app