package com.oa.model; import java.io.Serializable; import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; 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; import javax.persistence.OrderBy; import javax.persistence.Table; /*** * * 模块表 * @author Big mac * */ @Entity @Table(name="oa_module") public class Module implements Serializable { /** * */ private static final long serialVersionUID = -8626305393798148323L; /** * 模块id 自定增长 * */ private Integer id; /** * 模块名称 * */ private String name; /*** * 模块的url (action) */ private String url; /** * 模块编号 * */ private String sn; /** * * module 父id */ private Module pid; private Set<Module> modules =new HashSet<Module>(); @Id @GeneratedValue public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @Column(unique=true) public String getName() { return name; } public void setName(String name) { this.name = name; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getSn() { return sn; } public void setSn(String sn) { this.sn = sn; } @ManyToOne(cascade={CascadeType.ALL},fetch=FetchType.LAZY) @JoinColumn(name="pid",referencedColumnName="id") @OrderBy("pid asc") public Module getPid() { return pid; } public void setPid(Module pid) { this.pid = pid; } @OneToMany(mappedBy="pid",cascade={CascadeType.ALL}) @OrderBy("id asc") public Set<Module> getModules() { return modules; } public void setModules(Set<Module> modules) { this.modules = modules; } @Override public String toString() { return "Module [id=" + id + ", name=" + name + ", sn=" + sn + ", url=" + url + "]"; } }