package nl.amis.rest.hr.model.entities;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
@NamedQueries({
@NamedQuery(name = "Employees.findAll", query = "select o from Employees o")
})
public class Employees implements Serializable {
@SuppressWarnings("compatibility:3012448003487237613")
private static final long serialVersionUID = 1L;
@Column(name="COMMISSION_PCT")
private BigDecimal commissionPct;
@Column(nullable = false, unique = true, length = 25)
private String email;
@Id
@Column(name="EMPLOYEE_ID", nullable = false)
private BigDecimal employeeId;
@Column(name="FIRST_NAME", length = 20)
private String firstName;
@Temporal(TemporalType.DATE)
@Column(name="HIRE_DATE", nullable = false)
private Date hireDate;
@Column(name="JOB_ID", nullable = false, length = 10)
private String jobId;
@Column(name="LAST_NAME", nullable = false, length = 25)
private String lastName;
@Column(name="PHONE_NUMBER", length = 20)
private String phoneNumber;
private BigDecimal salary;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "MANAGER_ID")
private Employees manager;
@OneToMany(mappedBy = "manager", fetch = FetchType.LAZY)
private List<Employees> managerEmployeesList;
@OneToMany(mappedBy = "manager", fetch = FetchType.LAZY)
private List<Departments> managerDepartmentsList;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "DEPARTMENT_ID")
private Departments departments;
public Employees() {
}
public Employees(BigDecimal commissionPct, Departments departments, String email, BigDecimal employeeId,
String firstName, Date hireDate, String jobId, String lastName, Employees manager,
String phoneNumber, BigDecimal salary) {
this.commissionPct = commissionPct;
this.departments = departments;
this.email = email;
this.employeeId = employeeId;
this.firstName = firstName;
this.hireDate = hireDate;
this.jobId = jobId;
this.lastName = lastName;
this.manager = manager;
this.phoneNumber = phoneNumber;
this.salary = salary;
}
public BigDecimal getCommissionPct() {
return commissionPct;
}
public void setCommissionPct(BigDecimal commissionPct) {
this.commissionPct = commissionPct;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public BigDecimal getEmployeeId() {
return employeeId;
}
public void setEmployeeId(BigDecimal employeeId) {
this.employeeId = employeeId;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public Date getHireDate() {
return hireDate;
}
public void setHireDate(Date hireDate) {
this.hireDate = hireDate;
}
public String getJobId() {
return jobId;
}
public void setJobId(String jobId) {
this.jobId = jobId;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public BigDecimal getSalary() {
return salary;
}
public void setSalary(BigDecimal salary) {
this.salary = salary;
}
public Employees getManager() {
return manager;
}
public void setManager(Employees manager) {
this.manager = manager;
}
public List<Employees> getManagerEmployeesList() {
return managerEmployeesList;
}
public void setManagerEmployeesList(List<Employees> managerEmployeesList) {
this.managerEmployeesList = managerEmployeesList;
}
public Employees addEmployees(Employees employees) {
getManagerEmployeesList().add(employees);
employees.setManager(this);
return employees;
}
public Employees removeEmployees(Employees employees) {
getManagerEmployeesList().remove(employees);
employees.setManager(null);
return employees;
}
public List<Departments> getManagerDepartmentsList() {
return managerDepartmentsList;
}
public void setManagerDepartmentsList(List<Departments> managerDepartmentsList) {
this.managerDepartmentsList = managerDepartmentsList;
}
public Departments addDepartments(Departments departments) {
getManagerDepartmentsList().add(departments);
departments.setManager(this);
return departments;
}
public Departments removeDepartments(Departments departments) {
getManagerDepartmentsList().remove(departments);
departments.setManager(null);
return departments;
}
public Departments getDepartments() {
return departments;
}
public void setDepartments(Departments departments) {
this.departments = departments;
}
@Override
public String toString() {
StringBuffer buffer = new StringBuffer();
buffer.append(getClass().getName()+"@"+Integer.toHexString(hashCode()));
buffer.append('[');
buffer.append("commissionPct=");
buffer.append(getCommissionPct());
buffer.append(',');
buffer.append("email=");
buffer.append(getEmail());
buffer.append(',');
buffer.append("employeeId=");
buffer.append(getEmployeeId());
buffer.append(',');
buffer.append("firstName=");
buffer.append(getFirstName());
buffer.append(',');
buffer.append("hireDate=");
buffer.append(getHireDate());
buffer.append(',');
buffer.append("jobId=");
buffer.append(getJobId());
buffer.append(',');
buffer.append("lastName=");
buffer.append(getLastName());
buffer.append(',');
buffer.append("phoneNumber=");
buffer.append(getPhoneNumber());
buffer.append(',');
buffer.append("salary=");
buffer.append(getSalary());
buffer.append(']');
return buffer.toString();
}
}