diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/entity/AdministratorRole.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/entity/AdministratorRole.java
deleted file mode 100644
index 29540a5..0000000
--- a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/entity/AdministratorRole.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.bpgroup.poc.admin.domain.admin.entity;
-
-import com.bpgroup.poc.admin.domain.BaseEntity;
-import jakarta.persistence.*;
-import lombok.Getter;
-
-@Getter
-@Entity
-@Table(name = "administrator_role")
-public class AdministratorRole extends BaseEntity {
-
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Long id;
-
- @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
- @JoinColumn(name = "administrator_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private Administrator administrator;
-
- @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
- @JoinColumn(name = "role_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private Role role;
-
-}
diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/entity/Menu.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/entity/Menu.java
deleted file mode 100644
index 9ccb75c..0000000
--- a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/entity/Menu.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.bpgroup.poc.admin.domain.admin.entity;
-
-import com.bpgroup.poc.admin.domain.BaseEntity;
-import jakarta.persistence.*;
-import lombok.Getter;
-
-@Getter
-@Entity
-@Table(name = "menu")
-public class Menu extends BaseEntity {
-
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Long id;
-
- @Column(name = "uri", length = 100, nullable = false)
- private String uri;
-
- @Column(name = "name", length = 100, nullable = false)
- private String name;
-
- @Column(name = "sort_order", nullable = false)
- private Integer sortOrder;
-
- @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
- @JoinColumn(name = "menu_group_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private MenuGroup menuGroup;
-
-}
diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/entity/MenuGroup.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/entity/MenuGroup.java
deleted file mode 100644
index 7241ae2..0000000
--- a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/entity/MenuGroup.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.bpgroup.poc.admin.domain.admin.entity;
-
-import com.bpgroup.poc.admin.domain.BaseEntity;
-import jakarta.persistence.*;
-import lombok.Getter;
-
-@Getter
-@Entity
-@Table(name = "menu_group")
-public class MenuGroup extends BaseEntity {
-
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Long id;
-
- @Column(name = "uri", length = 100, nullable = false)
- private String uri;
-
- @Column(name = "name", length = 100, nullable = false)
- private String name;
-
- @Column(name = "sort_order", nullable = false)
- private Integer sortOrder;
-
-}
diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/entity/RoleMenu.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/entity/RoleMenu.java
deleted file mode 100644
index 0779612..0000000
--- a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/entity/RoleMenu.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.bpgroup.poc.admin.domain.admin.entity;
-
-import com.bpgroup.poc.admin.domain.BaseEntity;
-import jakarta.persistence.*;
-import lombok.Getter;
-
-@Getter
-@Entity
-@Table(name = "role_menu")
-public class RoleMenu extends BaseEntity {
-
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Long id;
-
- @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
- @JoinColumn(name = "role_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private Role role;
-
- @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
- @JoinColumn(name = "menu_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private Menu menu;
-
-}
diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/BaseEntity.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/BaseEntity.java
similarity index 93%
rename from poc/admin/src/main/java/com/bpgroup/poc/admin/domain/BaseEntity.java
rename to poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/BaseEntity.java
index e76b888..54422f2 100644
--- a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/BaseEntity.java
+++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/BaseEntity.java
@@ -1,4 +1,4 @@
-package com.bpgroup.poc.admin.domain;
+package com.bpgroup.poc.admin.domain.entity;
import jakarta.persistence.Column;
import jakarta.persistence.EntityListeners;
diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/entity/Administrator.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/administrator/Administrator.java
similarity index 78%
rename from poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/entity/Administrator.java
rename to poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/administrator/Administrator.java
index f7fc3aa..a123c45 100644
--- a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/entity/Administrator.java
+++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/administrator/Administrator.java
@@ -1,6 +1,6 @@
-package com.bpgroup.poc.admin.domain.admin.entity;
+package com.bpgroup.poc.admin.domain.entity.administrator;
-import com.bpgroup.poc.admin.domain.BaseEntity;
+import com.bpgroup.poc.admin.domain.entity.BaseEntity;
import jakarta.persistence.*;
import lombok.Builder;
import lombok.Getter;
@@ -26,7 +26,7 @@ public class Administrator extends BaseEntity {
@Column(name = "name", length = 100, nullable = false)
private String name;
- @OneToOne(mappedBy = "administrator", fetch = FetchType.LAZY)
+ @Embedded
private AdministratorRole administratorRole;
@Builder
@@ -43,6 +43,10 @@ public class Administrator extends BaseEntity {
this.password = administrator.password;
this.email = administrator.email;
this.name = administrator.name;
+ this.administratorRole = administrator.administratorRole;
}
+ public void setAdministratorRole(AdministratorRole administratorRole) {
+ this.administratorRole = administratorRole;
+ }
}
diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/entity/AdministratorRepository.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/administrator/AdministratorRepository.java
similarity index 80%
rename from poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/entity/AdministratorRepository.java
rename to poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/administrator/AdministratorRepository.java
index b81a4ad..07f8756 100644
--- a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/entity/AdministratorRepository.java
+++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/administrator/AdministratorRepository.java
@@ -1,4 +1,4 @@
-package com.bpgroup.poc.admin.domain.admin.entity;
+package com.bpgroup.poc.admin.domain.entity.administrator;
import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/administrator/AdministratorRole.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/administrator/AdministratorRole.java
new file mode 100644
index 0000000..6651665
--- /dev/null
+++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/administrator/AdministratorRole.java
@@ -0,0 +1,22 @@
+package com.bpgroup.poc.admin.domain.entity.administrator;
+
+import com.bpgroup.poc.admin.domain.entity.role.Role;
+import jakarta.persistence.*;
+import lombok.Builder;
+import lombok.Getter;
+
+@Getter
+@Embeddable
+public class AdministratorRole {
+
+ @ManyToOne(fetch = FetchType.LAZY)
+ @JoinColumn(name = "role_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private Role role;
+
+ @Builder
+ public static AdministratorRole of(Role role) {
+ AdministratorRole administratorRole = new AdministratorRole();
+ administratorRole.role = role;
+ return administratorRole;
+ }
+}
diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/exception/DuplicationAdministratorException.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/exception/DuplicationAdministratorException.java
similarity index 79%
rename from poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/exception/DuplicationAdministratorException.java
rename to poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/exception/DuplicationAdministratorException.java
index 356b127..554ffc0 100644
--- a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/exception/DuplicationAdministratorException.java
+++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/exception/DuplicationAdministratorException.java
@@ -1,4 +1,4 @@
-package com.bpgroup.poc.admin.domain.admin.exception;
+package com.bpgroup.poc.admin.domain.entity.exception;
public class DuplicationAdministratorException extends RuntimeException {
public DuplicationAdministratorException(String loginId) {
diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/exception/NotFoundAdministratorException.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/exception/NotFoundAdministratorException.java
similarity index 78%
rename from poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/exception/NotFoundAdministratorException.java
rename to poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/exception/NotFoundAdministratorException.java
index 2f2a2da..ffd4fe6 100644
--- a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/admin/exception/NotFoundAdministratorException.java
+++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/exception/NotFoundAdministratorException.java
@@ -1,4 +1,4 @@
-package com.bpgroup.poc.admin.domain.admin.exception;
+package com.bpgroup.poc.admin.domain.entity.exception;
import com.bpgroup.poc.admin.domain.DomainException;
diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/menu/Menu.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/menu/Menu.java
new file mode 100644
index 0000000..300eee5
--- /dev/null
+++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/menu/Menu.java
@@ -0,0 +1,48 @@
+package com.bpgroup.poc.admin.domain.entity.menu;
+
+import com.bpgroup.poc.admin.domain.entity.BaseEntity;
+import jakarta.persistence.*;
+import lombok.Builder;
+import lombok.Getter;
+
+@Getter
+@Entity
+@Table(name = "menu")
+public class Menu extends BaseEntity {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ @Column(name = "uri", length = 100, nullable = false)
+ private String uri;
+
+ @Column(name = "name", length = 100, nullable = false)
+ private String name;
+
+ @Column(name = "sort_order", nullable = false)
+ private Integer sortOrder;
+
+ @ManyToOne(fetch = FetchType.LAZY)
+ @JoinColumn(name = "menu_group_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private MenuGroup menuGroup;
+
+ public void setMenuGroup(MenuGroup menuGroup) {
+ this.menuGroup = menuGroup;
+ }
+
+ @Builder
+ public static Menu of(String uri, String name, Integer sortOrder) {
+ Menu menu = new Menu();
+ menu.uri = uri;
+ menu.name = name;
+ menu.sortOrder = sortOrder;
+ return menu;
+ }
+
+ public void update(Menu entity) {
+ this.uri = entity.uri;
+ this.name = entity.name;
+ this.sortOrder = entity.sortOrder;
+ }
+}
diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/menu/MenuGroup.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/menu/MenuGroup.java
new file mode 100644
index 0000000..1de2b60
--- /dev/null
+++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/entity/menu/MenuGroup.java
@@ -0,0 +1,51 @@
+package com.bpgroup.poc.admin.domain.entity.menu;
+
+import com.bpgroup.poc.admin.domain.entity.BaseEntity;
+import jakarta.persistence.*;
+import lombok.Builder;
+import lombok.Getter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Getter
+@Entity
+@Table(name = "menu_group")
+public class MenuGroup extends BaseEntity {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ @Column(name = "uri", length = 100, nullable = false)
+ private String uri;
+
+ @Column(name = "name", length = 100, nullable = false)
+ private String name;
+
+ @Column(name = "sort_order", nullable = false)
+ private Integer sortOrder;
+
+ @OneToMany(mappedBy = "menuGroup", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
+ private List