*/
package org.mxchange.jcontactsbusiness.employee;
-import javax.persistence.Basic;
+import javax.persistence.CascadeType;
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 org.mxchange.jcontactsbusiness.branch.CompanyBranchOffice;
import org.mxchange.jcontactsbusiness.department.CompanyDepartment;
import org.mxchange.jcontactsbusiness.department.Department;
+import org.mxchange.jcontactsbusiness.jobposition.EmployeePosition;
+import org.mxchange.jcontactsbusiness.jobposition.JobPosition;
+import org.mxchange.jphone.phonenumbers.cellphone.CellphoneNumber;
+import org.mxchange.jphone.phonenumbers.cellphone.DialableCellphoneNumber;
/**
* A POJO for company employees (including CEO)
*/
private static final long serialVersionUID = 48_959_819_859_812_076L;
- /**
- * Id number
- */
- @Id
- @Column (name = "employee_id", length = 20, nullable = false, unique = true, updatable = false)
- @GeneratedValue (strategy = GenerationType.IDENTITY)
- private Long employeeId;
-
/**
* Branch office the employee works at
*/
@JoinColumn (name = "employee_branch_id")
- @OneToOne (targetEntity = CompanyBranchOffice.class, orphanRemoval = true)
+ @OneToOne (targetEntity = CompanyBranchOffice.class, cascade = CascadeType.ALL)
private BranchOffice employeeBranchOffice;
/**
* Department the employee works at
*/
- @JoinColumn (name = "employee_department_id", nullable = false)
- @OneToOne (targetEntity = CompanyDepartment.class, optional = false)
+ @JoinColumn (name = "employee_department_id")
+ @OneToOne (targetEntity = CompanyDepartment.class, cascade = CascadeType.ALL)
private Department employeeDepartment;
/**
@Column (name = "employee_email_address", length = 30)
private String employeeEmailAddress;
+ /**
+ * Id number
+ */
+ @Id
+ @Column (name = "employee_id", length = 20, nullable = false, updatable = false)
+ @GeneratedValue (strategy = GenerationType.IDENTITY)
+ private Long employeeId;
+
/**
* Employee's business mobile number
*/
- @Column (name = "employee_mobile_number", length = 20)
- private String employeeMobileNumber;
+ @JoinColumn (name = "employee_mobile_number_id")
+ @OneToOne (targetEntity = CellphoneNumber.class, cascade = CascadeType.ALL)
+ private DialableCellphoneNumber employeeMobileNumber;
/**
* Employee's number
*/
- @Basic (optional = false)
- @Column (name = "employee_number", length = 20, nullable = false)
+ @Column (name = "employee_number", length = 20)
private String employeeNumber;
/**
* Employee's personal data
*/
- @JoinColumn (name = "employee_personal_id", nullable = false, unique = true, updatable = false)
- @OneToOne (optional = false, targetEntity = UserContact.class)
- private Contact employeePersonalData;
+ @JoinColumn (name = "employee_personal_data_id", nullable = false, updatable = false)
+ @OneToOne (targetEntity = UserContact.class, cascade = CascadeType.ALL, optional = false, fetch = FetchType.EAGER)
+ private transient Contact employeePersonalData;
/**
* Employee's phone extension (or number if different)
*/
- @Column (name = "employee_phone_extension", length = 20)
- private String employeePhoneExtension;
+ @Column (name = "employee_phone_extension", length = 10)
+ private Integer employeePhoneExtension;
/**
* Employee's position (example: CEO)
*/
- @Basic (optional = false)
- @Column (name = "employee_status", length = 50, nullable = false)
- private String employeePosition;
+ @JoinColumn (name = "employee_position_id")
+ @OneToOne (targetEntity = EmployeePosition.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
+ private transient JobPosition employeePosition;
@Override
public int compareTo (final Employee employee) {
}
@Override
- public String getEmployeeMobileNumber () {
+ public DialableCellphoneNumber getEmployeeMobileNumber () {
return this.employeeMobileNumber;
}
@Override
- public void setEmployeeMobileNumber (final String employeeMobileNumber) {
+ public void setEmployeeMobileNumber (final DialableCellphoneNumber employeeMobileNumber) {
this.employeeMobileNumber = employeeMobileNumber;
}
}
@Override
- public String getEmployeePhoneExtension () {
+ public Integer getEmployeePhoneExtension () {
return this.employeePhoneExtension;
}
@Override
- public void setEmployeePhoneExtension (final String employeePhoneExtension) {
+ public void setEmployeePhoneExtension (final Integer employeePhoneExtension) {
this.employeePhoneExtension = employeePhoneExtension;
}
@Override
- public String getEmployeePosition () {
+ public JobPosition getEmployeePosition () {
return this.employeePosition;
}
@Override
- public void setEmployeePosition (final String employeePosition) {
+ public void setEmployeePosition (final JobPosition employeePosition) {
this.employeePosition = employeePosition;
}
}