package kr.wisestone.owl.domain; import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; import javax.persistence.*; import java.io.Serializable; import java.util.HashSet; import java.util.Set; /** * Created by wisestone on 2018-01-03. */ @Entity @DynamicInsert @DynamicUpdate public class Issue extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; public static final String WORKSPACE_MANAGER = "WORKSPACE_MANAGER"; // 업무 공간 관리자 public static final String PROJECT_MANAGER = "PROJECT_MANAGER"; // 프로젝트 관리자 public static final String ISSUE_MANAGER = "ISSUE_MANAGER"; // 전체 이슈 관리자 public static final String REGISTER = "REGISTER"; // 이슈 등록자 public static final String ASSIGNEE = "ASSIGNEE"; // 이슈 담당자 public static final String DEPARTMENT = "DEPARTMENT"; // 이슈 담당부서 public static final String IS_API_YES = "Y"; public static final String IS_API_NO = "N"; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; private String description; private Long reverseIndex; private Long issueNumber; private String startDate; private String completeDate; private String isApi; @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name = "project_id") private Project project; @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name = "issue_status_id") private IssueStatus issueStatus; @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name = "issue_type_id") private IssueType issueType; @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name = "priority_id") private Priority priority; @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name = "severity_id") private Severity severity; @OneToOne(mappedBy = "issue", cascade = {CascadeType.ALL}, orphanRemoval = true) private IssueRisk issueRisk; @OrderBy(value="id DESC") @OneToMany(mappedBy = "issue", cascade = { CascadeType.ALL }, orphanRemoval = true) private Set issueUsers = new HashSet<>(); @OrderBy(value="id DESC") @OneToMany(mappedBy = "issue", cascade = { CascadeType.ALL }, orphanRemoval = true) private Set issueDepartments = new HashSet<>(); @OrderBy(value="id DESC") @OneToMany(mappedBy="issue", cascade={CascadeType.ALL}, orphanRemoval = true) private Set attachedFiles = new HashSet<>(); @OneToMany(mappedBy = "issue", cascade = { CascadeType.ALL }, orphanRemoval = true) private Set userLikeIssues = new HashSet<>(); // 이력은 삭제 금지 @OrderBy(value="id DESC") @OneToMany(mappedBy="issue", cascade={CascadeType.ALL}, orphanRemoval = true) private Set issueHistory = new HashSet<>(); @OneToMany(mappedBy="issue", cascade={CascadeType.ALL}, orphanRemoval = true) @OrderBy(value="id DESC") private Set issueComments = new HashSet<>(); @OneToMany(mappedBy = "issue", cascade = { CascadeType.ALL }, orphanRemoval = true) private Set issueCustomFieldValues = new HashSet<>(); @OneToMany(mappedBy = "issue", cascade = { CascadeType.ALL }, orphanRemoval = true) private Set issueCompanies = new HashSet<>(); @OneToMany(mappedBy = "issue", cascade = { CascadeType.ALL }, orphanRemoval = true) private Set issueIsps = new HashSet<>(); @OneToMany(mappedBy = "issue", cascade = { CascadeType.ALL }, orphanRemoval = true) private Set issueHostings = new HashSet<>(); @OneToMany(mappedBy = "issue", cascade = { CascadeType.ALL }, orphanRemoval = true) private Set issueVersions = new HashSet<>(); @OneToMany(mappedBy = "issue", cascade = { CascadeType.ALL }, orphanRemoval = true) private Set issueRelations = new HashSet<>(); @OneToOne(mappedBy = "issue", cascade = {CascadeType.ALL}, orphanRemoval = true) private IssueReservation issueReservation; @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name = "workflow_status_id") private WorkflowStatus workflowStatus; @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name = "parent_issue_id") private Issue parentIssue; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public Long getReverseIndex() { return reverseIndex; } public void setReverseIndex(Long reverseIndex) { this.reverseIndex = reverseIndex; } public Project getProject() { return project; } public void setProject(Project project) { this.project = project; } public IssueStatus getIssueStatus() { return issueStatus; } public void setIssueStatus(IssueStatus issueStatus) { this.issueStatus = issueStatus; } public IssueType getIssueType() { return issueType; } public void setIssueType(IssueType issueType) { this.issueType = issueType; } public Priority getPriority() { return priority; } public void setPriority(Priority priority) { this.priority = priority; } public Severity getSeverity() { return severity; } public void setSeverity(Severity severity) { this.severity = severity; } public IssueRisk getIssueRisk() { return issueRisk; } public void setIssueRisk(IssueRisk issueRisk) { this.issueRisk = issueRisk; } public Long getIssueNumber() { return issueNumber; } public void setIssueNumber(Long issueNumber) { this.issueNumber = issueNumber; } public Set getIssueUsers() { return issueUsers; } public void setIssueUsers(Set issueUsers) { this.issueUsers = issueUsers; } public Set getIssueDepartments() { return issueDepartments; } public void setIssueDepartments(Set issueDepartments) { this.issueDepartments = issueDepartments; } public Set getAttachedFiles() { return attachedFiles; } public void setAttachedFiles(Set attachedFiles) { this.attachedFiles = attachedFiles; } public Set getUserLikeIssues() { return userLikeIssues; } public void setUserLikeIssues(Set userLikeIssues) { this.userLikeIssues = userLikeIssues; } public Set getIssueHistory() { return issueHistory; } public void setIssueHistory(Set issueHistory) { this.issueHistory = issueHistory; } public Set getIssueComments() { return issueComments; } public void setIssueComments(Set issueComments) { this.issueComments = issueComments; } public Set getIssueCustomFieldValues() { return issueCustomFieldValues; } public void setIssueCustomFieldValues(Set issueCustomFieldValues) { this.issueCustomFieldValues = issueCustomFieldValues; } public Set getIssueCompanies() { return issueCompanies; } public void setIssueCompanies(Set issueCompanies) { this.issueCompanies = issueCompanies; } public Set getIssueIspFields() { return issueIsps; } public void setIssueIspFields(Set issueIsps) { this.issueIsps = issueIsps; } public Set getIssueHostingFields() { return issueHostings; } public void setIssueHostingFields(Set issueHostings) { this.issueHostings = issueHostings; } public String getStartDate() { return startDate; } public void setStartDate(String startDate) { this.startDate = startDate; } public String getCompleteDate() { return completeDate; } public void setCompleteDate(String completeDate) { this.completeDate = completeDate; } public IssueReservation getIssueReservation() { return issueReservation; } public void setIssueReservation(IssueReservation issueReservation) { this.issueReservation = issueReservation; } public Set getIssueVersions() { return issueVersions; } public void setIssueVersions(Set issueVersions) { this.issueVersions = issueVersions; } public WorkflowStatus getWorkflowStatus() { return workflowStatus; } public void setWorkflowStatus(WorkflowStatus workflowStatus) { this.workflowStatus = workflowStatus; } public Set getIssueRelations() { return issueRelations; } public void setIssueRelations(Set issueRelations) { this.issueRelations = issueRelations; } public void clearIssueRelations() { this.issueRelations.clear(); } public Issue getParentIssue() { return parentIssue; } public void setParentIssue(Issue parentIssue) { this.parentIssue = parentIssue; } public String getIsApi() { return isApi; } public void setIsApi(String isApi) { this.isApi = isApi; } }