diff --git a/devslab-kit-menu-core/src/main/java/kr/devslab/kit/menu/core/repository/JpaPlatformMenuRepository.java b/devslab-kit-menu-core/src/main/java/kr/devslab/kit/menu/core/repository/JpaPlatformMenuRepository.java index 9ab4628..7693de9 100644 --- a/devslab-kit-menu-core/src/main/java/kr/devslab/kit/menu/core/repository/JpaPlatformMenuRepository.java +++ b/devslab-kit-menu-core/src/main/java/kr/devslab/kit/menu/core/repository/JpaPlatformMenuRepository.java @@ -1,6 +1,7 @@ package kr.devslab.kit.menu.core.repository; import java.util.List; +import java.util.Optional; import java.util.UUID; import kr.devslab.kit.menu.core.entity.PlatformMenuEntity; import org.springframework.data.jpa.repository.JpaRepository; @@ -8,4 +9,6 @@ public interface JpaPlatformMenuRepository extends JpaRepository { List findAllByTenantIdOrderBySortOrderAsc(String tenantId); + + Optional findByTenantIdAndCode(String tenantId, String code); } diff --git a/devslab-kit-menu-core/src/main/java/kr/devslab/kit/menu/core/service/MenuAdminService.java b/devslab-kit-menu-core/src/main/java/kr/devslab/kit/menu/core/service/MenuAdminService.java index 0a711d0..55b3220 100644 --- a/devslab-kit-menu-core/src/main/java/kr/devslab/kit/menu/core/service/MenuAdminService.java +++ b/devslab-kit-menu-core/src/main/java/kr/devslab/kit/menu/core/service/MenuAdminService.java @@ -31,6 +31,9 @@ public PlatformMenuEntity create( String requiredPermissionCode, String icon ) { + if (repository.findByTenantIdAndCode(tenantId.value(), code).isPresent()) { + throw new IllegalStateException("Menu already exists: tenant=" + tenantId + " code=" + code); + } PlatformMenuEntity entity = new PlatformMenuEntity( UUID.randomUUID(), tenantId.value(),