diff --git a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/menu/service/MenuImageService.java b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/menu/service/MenuImageService.java index e1bdcc5..b3726fe 100644 --- a/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/menu/service/MenuImageService.java +++ b/nowait-app-admin-api/src/main/java/com/nowait/applicationadmin/menu/service/MenuImageService.java @@ -1,5 +1,7 @@ package com.nowait.applicationadmin.menu.service; +import java.util.Optional; + import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -33,6 +35,13 @@ public MenuImageUploadResponse save(Long menuId, MultipartFile file) { Menu menu = menuRepository.findById(menuId) .orElseThrow(MenuNotFoundException::new); + Optional existingMenuImage = menuImageRepository.findByMenuId(menuId); + + existingMenuImage.ifPresent(menuImage -> { + s3Service.delete(menuImage.getFileKey()); + menuImageRepository.delete(menuImage); + }); + S3Service.S3UploadResult uploadResult = s3Service.upload(type, menuId, file).join(); // MenuImage 엔티티 생성 및 저장 diff --git a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/menu/repository/MenuImageRepository.java b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/menu/repository/MenuImageRepository.java index 471464c..7ad8143 100644 --- a/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/menu/repository/MenuImageRepository.java +++ b/nowait-domain/domain-core-rdb/src/main/java/com/nowait/domaincorerdb/menu/repository/MenuImageRepository.java @@ -1,6 +1,7 @@ package com.nowait.domaincorerdb.menu.repository; import java.util.List; +import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @@ -11,4 +12,5 @@ @Repository public interface MenuImageRepository extends JpaRepository { List findByMenu(Menu menu); + Optional findByMenuId(Long menuId); }