Model层生成各数据库表之间的关系

来源:互联网 发布:加油卡丢了怎么网络挂 编辑:程序博客网 时间:2024/04/20 09:00

三个表company、department、staff。
员工表中的公司ID和部门ID为外键。

company的Model:

import java.util.Date;import java.util.HashSet;import java.util.List;import java.util.Set;@Entity@Table(name = "t_company", catalog = "smartmgr")@Inheritance(strategy = InheritanceType.SINGLE_TABLE)@DiscriminatorColumn(name = "COMPANY_TYPE")@DiscriminatorValue("Others")public class TCompany implements java.io.Serializable {    /**     *      */    private static final long serialVersionUID = -1518840460031368116L;    private String id;    private String comFullName;    private String comSimpleName;    private CompanyType companyType;    private Set<TCompanyDirectory> companyDirectories =new HashSet<TCompanyDirectory>(0);    @Id    @GeneratedValue(generator = "system-uuid")    @GenericGenerator(name = "system-uuid", strategy = "uuid")    @Column(name = "ID", unique = true, nullable = false, length = 32)    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    @Column(name = "COM_FULL_NAME", length = 128)    public String getComFullName() {        return comFullName;    }    public void setComFullName(String comFullName) {        this.comFullName = comFullName;    }    @Column(name = "COM_ABBR_NAME", length = 64)    public String getComSimpleName() {        return comSimpleName;    }    public void setComSimpleName(String comSimpleName) {        this.comSimpleName = comSimpleName;    }    @Column(name = "COM_TYPE", length = 32)    public CompanyType getCompanyType() {        return companyType;    }    public void setCompanyType(CompanyType companyType) {        this.companyType = companyType;    }    @OneToMany(cascade = CascadeType.MERGE, mappedBy = "company")    public Set<TCompanyDirectory> getCompanyDirectories() {        return companyDirectories;    }    public void setCompanyDirectories(Set<TCompanyDirectory> companyDirectories) {        this.companyDirectories = companyDirectories;    }    @OneToMany(cascade = CascadeType.MERGE, mappedBy = "company")    public List<TDepartment> getDepartments() {        return departments;    }    public void setDepartments(List<TDepartment> departments) {        this.departments = departments;    }}

Department的Model

import java.util.Date;import java.util.HashSet;import java.util.List;import java.util.Set;@Entity@Table(name = "t_depantment", catalog = "smartmgr")@Inheritance(strategy = InheritanceType.SINGLE_TABLE)@DiscriminatorColumn(name = "DEPARTMENT_TYPE")public class TDepartment implements java.io.Serializable {    private static final long serialVersionUID = 1L;    private String id;    private String name;    private TCompany company;    private TDepartment department;    private Set<TCompanyDirectory> companyDirectories=new HashSet<TCompanyDirectory>(0);    public TDepartment() {        super();        // TODO Auto-generated constructor stub    }    @Id    @GeneratedValue(generator = "system-uuid")    @GenericGenerator(name = "system-uuid", strategy = "uuid")    @Column(name = "ID", unique = true, nullable = false, length = 32)    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    @Column(name = "NAME", length = 32)    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public void setCompany(TCompany company) {        this.company = company;    }    @OneToMany(cascade = CascadeType.MERGE, mappedBy = "department")    public Set<TCompanyDirectory> getCompanyDirectories() {        return companyDirectories;    }    public void setCompanyDirectories(Set<TCompanyDirectory> companyDirectories) {        this.companyDirectories = companyDirectories;    }}

Staff的Model:

package com.smartprint.biztrip.common.model.company;//import java.util.ArrayList;import java.util.Date;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.Table;import org.hibernate.annotations.GenericGenerator;import com.smartprint.biztrip.common.model.department.TDepartment;//import com.smartprint.biztrip.common.model.company.TCompany;//import com.smartprint.biztrip.common.model.department.TDepartment;@Entity@Table(name = "t_company_directory", catalog = "smartmgr")//@Inheritance(strategy = InheritanceType.SINGLE_TABLE)public class TCompanyDirectory implements java.io.Serializable {    /**     *      */    private static final long serialVersionUID = -5215402565270755971L;    // 基本信息    private String id;    private String name;// 员工姓名    private Date birth;// 出生日期    private String sex;    private String mobilePhone;// 联系电话    private String email;// 邮箱    private String nationality;// 国籍    private String jobTitle;// 职务    private String spellName;// 姓名拼音    private String passportNumber;// 护照号    private String identityNumber;// 身份证号码    private String otherIdCardType;// 其它证件    private String otherIdCardNum;// 其它证件号码    // 紧急联系人    private String emergencyName;// 员工紧急联系人    private String emergencyPhone;// 员工紧急联系电话    private TCompany company; // 雇佣公司ID    private TDepartment department; // 雇佣部门ID    // private TStaff createStaff;// 添加员工    // private TStaff updateStaff;// 更新员工    // private TCompany companyID;// 公司ID    // private TDepartment departmentID;// 所属部门ID    // private List<TStaff> createStaffs = new ArrayList<TStaff>();    // private List<TStaff> updateStaffs = new ArrayList<TStaff>();    public TCompanyDirectory() {        super();    }    @Id    @GeneratedValue(generator = "system-uuid")    @GenericGenerator(name = "system-uuid", strategy = "uuid")    @Column(name = "ID", unique = true, nullable = false, length = 32)    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    @Column(name = "NAME", length = 64)    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    @Column(name = "SEX", length = 8)    public String getSex() {        return sex;    }    public void setSex(String sex) {        this.sex = sex;    }    @Column(name = "MOBILE_PHONE", length = 32)    public String getMobilePhone() {        return mobilePhone;    }    public void setMobilePhone(String mobilePhone) {        this.mobilePhone = mobilePhone;    }    @Column(name = "EAMIL", length = 64)    public String getEmail() {        return email;    }    public void setEmail(String email) {        this.email = email;    }    @Column(name = "NATIONALITY", length = 6)    public String getNationality() {        return nationality;    }    public void setNationality(String nationality) {        this.nationality = nationality;    }    @Column(name = "SPELL_NAME", length = 64)    public String getSpellName() {        return spellName;    }    public void setSpellName(String spellName) {        this.spellName = spellName;    }    @Column(name = "PASSPORT_NUM", length = 32)    public String getPassportNumber() {        return passportNumber;    }    public void setPassportNumber(String passportNumber) {        this.passportNumber = passportNumber;    }    @Column(name = "ID_CARD_NUM", length = 32)    public String getIdentityNumber() {        return this.identityNumber;    }    public void setIdentityNumber(String identityNumber) {        this.identityNumber = identityNumber;    }    @Column(name = "EMERGENCY_NAME", length = 64)    public String getEmergencyName() {        return emergencyName;    }    public void setEmergencyName(String emergencyName) {        this.emergencyName = emergencyName;    }    @Column(name = "EMERGENCY_PHONE", length = 32)    public String getEmergencyPhone() {        return emergencyPhone;    }    public void setEmergencyPhone(String emergencyPhone) {        this.emergencyPhone = emergencyPhone;    }    @Column(name = "BIRTH", length = 19)    public Date getBirth() {        return birth;    }    public void setBirth(Date birth) {        this.birth = birth;    }    @Column(name = "JOB_TITLE", length = 64)    public String getJobTitle() {        return jobTitle;    }    public void setJobTitle(String jobTitle) {        this.jobTitle = jobTitle;    }    @Column(name = "OTHER_ID_TYPE", length = 64)    public String getOtherIdCardType() {        return otherIdCardType;    }    public void setOtherIdCardType(String otherIdCardType) {        this.otherIdCardType = otherIdCardType;    }    @Column(name = "OTHER_ID_NUM", length = 32)    public String getOtherIdCardNum() {        return otherIdCardNum;    }    public void setOtherIdCardNum(String otherIdCardNum) {        this.otherIdCardNum = otherIdCardNum;    }    @ManyToOne(cascade = CascadeType.MERGE, fetch = FetchType.LAZY)    @JoinColumn(name = "EMP_DEPT_ID")    public TDepartment getDepartment() {        return department;    }    public void setDepartment(TDepartment department) {        this.department = department;    }    @ManyToOne(cascade = CascadeType.MERGE, fetch = FetchType.LAZY)    @JoinColumn(name = "EMP_COM_ID")    public TCompany getCompany() {        return company;    }    public void setCompany(TCompany company) {        this.company = company;    }}
0 0