package net.techreadiness.persistence.domain; import java.io.Serializable; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.Table; import net.techreadiness.persistence.AuditedBaseEntity; import net.techreadiness.persistence.BaseEntity; import net.techreadiness.persistence.ServiceObjectMapped; import net.techreadiness.service.object.BaseObject; import net.techreadiness.service.object.OrgType; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; /** * The persistent class for the org_type database table. * */ @Entity @Table(name = "org_type") @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) public class OrgTypeDO extends AuditedBaseEntity implements Serializable, ServiceObjectMapped { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "org_type_id", unique = true, nullable = false) private Long orgTypeId; @Column(name = "allow_device", nullable = false) private boolean allowDevice; @Column(nullable = false, length = 50) private String code; @Column(nullable = false, length = 100) private String name; // bi-directional many-to-one association to OrgDO @OneToMany(mappedBy = "orgType") private List<OrgDO> orgs; // bi-directional many-to-one association to OrgTypeDO @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "parent_org_type_id") @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) private OrgTypeDO parentOrgType; // bi-directional many-to-one association to OrgTypeDO @OneToMany(mappedBy = "parentOrgType") @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) private List<OrgTypeDO> orgTypes; // bi-directional many-to-one association to ScopeDO @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "scope_id", nullable = false) @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) private ScopeDO scope; public OrgTypeDO() { } public Long getOrgTypeId() { return orgTypeId; } public void setOrgTypeId(Long orgTypeId) { this.orgTypeId = orgTypeId; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<OrgDO> getOrgs() { return orgs; } public void setOrgs(List<OrgDO> orgs) { this.orgs = orgs; } public OrgTypeDO getParentOrgType() { return parentOrgType; } public void setParentOrgType(OrgTypeDO orgType) { parentOrgType = orgType; } public List<OrgTypeDO> getOrgTypes() { return orgTypes; } public void setOrgTypes(List<OrgTypeDO> orgTypes) { this.orgTypes = orgTypes; } public ScopeDO getScope() { return scope; } public void setScope(ScopeDO scope) { this.scope = scope; } public boolean isAllowDevice() { return allowDevice; } public void setAllowDevice(boolean allowDevice) { this.allowDevice = allowDevice; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (orgTypeId == null ? 0 : orgTypeId.hashCode()); result = prime * result + (parentOrgType == null ? 0 : parentOrgType.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof OrgTypeDO)) { return false; } OrgTypeDO other = (OrgTypeDO) obj; if (orgTypeId == null) { if (other.getOrgTypeId() != null) { return false; } } else if (!orgTypeId.equals(other.getOrgTypeId())) { return false; } if (parentOrgType == null) { if (other.getParentOrgType() != null) { return false; } } else if (!parentOrgType.equals(other.getParentOrgType())) { return false; } return true; } @Override public Class<? extends BaseObject<? extends BaseEntity>> getServiceObjectType() { return OrgType.class; } }