diff --git a/src/main/java/camp/woowak/lab/menu/exception/InvalidMenuStockUpdateException.java b/src/main/java/camp/woowak/lab/menu/exception/InvalidMenuStockUpdateException.java
new file mode 100644
index 00000000..d62ec3dd
--- /dev/null
+++ b/src/main/java/camp/woowak/lab/menu/exception/InvalidMenuStockUpdateException.java
@@ -0,0 +1,9 @@
+package camp.woowak.lab.menu.exception;
+
+import camp.woowak.lab.common.exception.ConflictException;
+
+public class InvalidMenuStockUpdateException extends ConflictException {
+ public InvalidMenuStockUpdateException(String message) {
+ super(MenuErrorCode.INVALID_UPDATE_MENU_STOCK, message);
+ }
+}
diff --git a/src/main/java/camp/woowak/lab/menu/exception/MenuErrorCode.java b/src/main/java/camp/woowak/lab/menu/exception/MenuErrorCode.java
index b82d2e1f..0f2417fb 100644
--- a/src/main/java/camp/woowak/lab/menu/exception/MenuErrorCode.java
+++ b/src/main/java/camp/woowak/lab/menu/exception/MenuErrorCode.java
@@ -21,7 +21,13 @@ public enum MenuErrorCode implements ErrorCode {
MENU_OWNER_NOT_MATCH(HttpStatus.FORBIDDEN, "m_10", "메뉴는 가게의 점주만 수정할 수 있습니다."),
- NOT_ENOUGH_STOCK(HttpStatus.BAD_REQUEST, "M4", "재고가 부족합니다.");
+ NOT_ENOUGH_STOCK(HttpStatus.BAD_REQUEST, "M4", "재고가 부족합니다."),
+
+ INVALID_UPDATE_MENU_STOCK(HttpStatus.CONFLICT, "m_11", "메뉴의 재고를 변경할 수 없습니다."),
+
+ NOT_EQUALS_OWNER(HttpStatus.BAD_REQUEST, "m_12", "매장의 점주와 일치하지 않습니다."),
+ NOT_UPDATABLE_TIME(HttpStatus.CONFLICT, "m_13", "메뉴를 변경할 수 없는 시간입니다."),
+ ;
private final int status;
private final String errorCode;
diff --git a/src/main/java/camp/woowak/lab/menu/exception/NotEqualsOwnerException.java b/src/main/java/camp/woowak/lab/menu/exception/NotEqualsOwnerException.java
new file mode 100644
index 00000000..9429b129
--- /dev/null
+++ b/src/main/java/camp/woowak/lab/menu/exception/NotEqualsOwnerException.java
@@ -0,0 +1,9 @@
+package camp.woowak.lab.menu.exception;
+
+import camp.woowak.lab.common.exception.BadRequestException;
+
+public class NotEqualsOwnerException extends BadRequestException {
+ public NotEqualsOwnerException(String message) {
+ super(MenuErrorCode.NOT_EQUALS_OWNER, message);
+ }
+}
diff --git a/src/main/java/camp/woowak/lab/menu/exception/NotUpdatableTimeException.java b/src/main/java/camp/woowak/lab/menu/exception/NotUpdatableTimeException.java
new file mode 100644
index 00000000..8af402b3
--- /dev/null
+++ b/src/main/java/camp/woowak/lab/menu/exception/NotUpdatableTimeException.java
@@ -0,0 +1,9 @@
+package camp.woowak.lab.menu.exception;
+
+import camp.woowak.lab.common.exception.ConflictException;
+
+public class NotUpdatableTimeException extends ConflictException {
+ public NotUpdatableTimeException(String message) {
+ super(MenuErrorCode.NOT_UPDATABLE_TIME, message);
+ }
+}
diff --git a/src/main/java/camp/woowak/lab/menu/repository/MenuRepository.java b/src/main/java/camp/woowak/lab/menu/repository/MenuRepository.java
index 7ee862bd..2b410830 100644
--- a/src/main/java/camp/woowak/lab/menu/repository/MenuRepository.java
+++ b/src/main/java/camp/woowak/lab/menu/repository/MenuRepository.java
@@ -5,6 +5,7 @@
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Lock;
+import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
@@ -20,4 +21,18 @@ public interface MenuRepository extends JpaRepository