TIL_250218

듀듀·2025년 2월 18일

spring_TIL

목록 보기
6/53

UUID를 Long형으로 변환하려는 오류

어제 오류 해결했다!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
orderID를 UUID로 선언해놓고 Long형으로 변환하려는 오류때문에 거의 3시간..? 가량 고생했던 것 같다
gpt와 함께 코드 하나하나 되짚어봐도 어.디.에.도 Long형으로 변환하려는게 없었는데 도대체 어디서 오류가 나는지 화가 나네 갑자기
암튼 원인은 Base Entity 였다...
Git을 제대로 활용하는 게 처음이여서 [충돌]이 너무 두려웠던 나머지 최신 코드를 pull하지 않은 채 기초 세팅에서 개발을 했었다.
팀원들과 상의끝에 Base Entity를 수정했었지만... 까먹었나보다
아무튼! BaseEntity 수정하니 잘 나왔다!
BaseEntity 코드 첨부하겠다.

package com.ioteam.order_management_platform.global.entity;

import jakarta.persistence.Column;
import jakarta.persistence.EntityListeners;
import jakarta.persistence.MappedSuperclass;
import lombok.Getter;
import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import java.time.LocalDateTime;
import java.util.UUID;

@EntityListeners(AuditingEntityListener.class)
@MappedSuperclass
@Getter
public abstract class BaseEntity {


	@CreatedDate
	@Column(updatable = false)
	protected LocalDateTime createdAt;

	@LastModifiedDate
	protected LocalDateTime modifiedAt;

	@CreatedBy
	@Column(updatable = false)
	protected UUID createdBy;

	@LastModifiedBy
	protected UUID modifiedBy;

}

나는 createdBy, modifiedBy를 Long으로 선언했더라 진짜 바보같기는

오류 해결~!


Exception

도메인마다 예외처리를 두기로 했다.
내가 생각한 주문 예외처리

  • 유효하지 않은 order_id
  • 유효하지 않은 res_id
  • 유효하지 않은 주문 형식(배달,대면 외)
  • 주문 금액 0원 이하

Success코드

난 성공 코드를 Controller에서 반환해줬다.
하지만 가독성(이 이유 맞는가..?)때문에 Success코드에 도메인별로 정리해줬다.

before

@Operation(summary = "전체 주문 조회")
	@GetMapping("/all")
	public ResponseEntity<CommonResponse<OrderListResponseDto>> getAllOrders() {
		OrderListResponseDto responseDto = orderService.getAllOrders();
		return ResponseEntity.ok(new CommonResponse<>("전체 주문 목록이 조회되었습니다.", responseDto));
	}

after

@Operation(summary = "전체 주문 조회")
	@GetMapping("/all")
	public ResponseEntity<CommonResponse<OrderListResponseDto>> getAllOrders() {
		OrderListResponseDto responseDto = orderService.getAllOrders();
		return ResponseEntity.ok(new CommonResponse<>(SuccessCode.ORDER_ALL_INFO, responseDto));
	}

Success

// order
	ORDER_CREATE(HttpStatus.OK, "전체 주문을 조회하는데에 성공하였습니다.", "S_ORDER_CREATE"),
	ORDER_ALL_INFO(HttpStatus.OK, "전체 주문을 조회하는데에 성공하였습니다.", "S_ORDER_LIST_INFO"),
	ORDER_DETAIL_INFO(HttpStatus.OK, "주문 상세정보를 조회하는데에 성공하였습니다.", "S_ORDER_LIST_INFO"),

내일은

  • 예외처리
  • 사용자, 레스토랑, 리뷰 연결

맞나???

1개의 댓글

comment-user-thumbnail
2025년 2월 19일

너무 공감합니다.

답글 달기