diff --git a/src/main/java/com/foru/freebe/errors/handler/GlobalExceptionHandler.java b/src/main/java/com/foru/freebe/errors/handler/GlobalExceptionHandler.java index 89fe6788..31292fb0 100644 --- a/src/main/java/com/foru/freebe/errors/handler/GlobalExceptionHandler.java +++ b/src/main/java/com/foru/freebe/errors/handler/GlobalExceptionHandler.java @@ -40,12 +40,16 @@ public ResponseEntity handleIllegalArgument(IllegalArgumentException e) return handleExceptionInternal(errorCode, e.getMessage()); } - @ExceptionHandler(DataIntegrityViolationException.class) + @ExceptionHandler(DataTruncation.class) public ResponseEntity handleDataTruncation(DataTruncation e) { ErrorCode errorCode = CommonErrorCode.INVALID_PARAMETER; - String message = e.getMessage(); + return handleExceptionInternal(errorCode, e.getMessage()); + } - return handleExceptionInternal(errorCode, message); + @ExceptionHandler(DataIntegrityViolationException.class) + public ResponseEntity handleDataIntegrityViolation(DataIntegrityViolationException e) { + ErrorCode errorCode = CommonErrorCode.INTERNAL_SERVER_ERROR; + return handleExceptionInternal(errorCode, e.getMessage()); } // 메서드 인자의 유효성 검사가 실패했을 때 발생 diff --git a/src/main/java/com/foru/freebe/product/entity/Product.java b/src/main/java/com/foru/freebe/product/entity/Product.java index 9499bef1..8c1aa3c2 100644 --- a/src/main/java/com/foru/freebe/product/entity/Product.java +++ b/src/main/java/com/foru/freebe/product/entity/Product.java @@ -21,6 +21,8 @@ import jakarta.persistence.Id; import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import jakarta.persistence.UniqueConstraint; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.AccessLevel; @@ -31,6 +33,11 @@ @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) +@Table( + uniqueConstraints = @UniqueConstraint( + name = "unique_title", + columnNames = {"title", "member_id"}) +) public class Product extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY)