From 5fec5801b937a2270920787891e39a8504cdf53f Mon Sep 17 00:00:00 2001
From: wyu <kknd09321@nate.com>
Date: 금, 03 12월 2021 15:00:44 +0900
Subject: [PATCH] 사용자 정의 필드 사용중일때 삭제 불가하게 수정

---
 src/main/java/kr/wisestone/owl/domain/Department.java |   32 ++++++++++++++++++++++++++++----
 1 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/domain/Department.java b/src/main/java/kr/wisestone/owl/domain/Department.java
index 8537951..1fad1bd 100644
--- a/src/main/java/kr/wisestone/owl/domain/Department.java
+++ b/src/main/java/kr/wisestone/owl/domain/Department.java
@@ -1,10 +1,10 @@
 package kr.wisestone.owl.domain;
 
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
+import javax.persistence.*;
 import java.io.Serializable;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
 
 @Entity
 public class Department extends BaseEntity implements Serializable {
@@ -16,6 +16,9 @@
     private Long id;
     private String departmentName;
     private String departmentDescription;
+
+    @OneToMany(mappedBy = "department", cascade = {CascadeType.ALL}, orphanRemoval = true)
+    private Set<ProjectRoleDepartment> projectRoleDepartments = new HashSet<ProjectRoleDepartment>();
 
     public Department() {
     }
@@ -43,4 +46,25 @@
     public void setDepartmentDescription(String departmentDescription) {
         this.departmentDescription = departmentDescription;
     }
+
+    public void addProjectRole(ProjectRole projectRole) {
+        if (this.projectRoleDepartments == null) {
+            this.projectRoleDepartments = new HashSet<>();
+        }
+        ProjectRoleDepartment projectRoleDepartment = new ProjectRoleDepartment(projectRole, this);
+
+        this.projectRoleDepartments.add(projectRoleDepartment);
+    }
+
+    public void removeProjectRole(ProjectRole projectRole) {
+        Iterator<ProjectRoleDepartment> iterator = this.projectRoleDepartments.iterator();
+
+        while (iterator.hasNext()) {
+            ProjectRoleDepartment projectRoleDepartment = iterator.next();
+            if (projectRole.getId().equals(projectRoleDepartment.getProjectRole().getId())) {
+                this.projectRoleDepartments.remove(projectRoleDepartment);
+                break;
+            }
+        }
+    }
 }

--
Gitblit v1.8.0