본문으로 건너뛰기
ElastiCORE 3.0 은 릴리스 후보(RC)입니다: Maven Central 의 3.0.261022-rc1. 2.2 라인 프로젝트는 2.2 문서를 보세요.
버전: 3.0

열거형

model/enum.yml
enumeration:
OrderStatus:
meta: enum @db(code) @json(code) -- 주문 상태
fields:
code: string(3) @code
label: string(20)
enum:
PLACED: PLC, Placed
SHIPPED: SHP, Shipped
CANCELLED: CAN, Cancelled
어노테이션뜻
@db(field)DB 에 저장할 필드
@json(field)JSON 으로 내보낼 필드
@code (필드에)저장하고 내보냄 - @db 와 @json 을 함께

상수마다 필드 값을 순서대로 적습니다(PLC, Placed). DB 에는 PLC, JSON 에는 "PLC" 가 들어가고, 생성된 TypeScript 에는 코드와 라벨(OrderStatusLabel)이 모두 있습니다.

  • 생명주기는 상수 이름을 씁니다(코드가 아님): ship: PLACED -> SHIPPED. 생명주기 참고.
  • 업무 지표도 상수 이름으로 비교하고(where status != CANCELLED), 내보낼 때 저장된 값('CAN')으로 바뀝니다. 업무 지표 참고.
  • 요청의 모르는 코드는 필드 오류와 함께 400 입니다(Unknown CreditCardType code: DINERS).
  • Spring Boot 4: enum 은 Jackson 3 이 읽는 @JsonValue + @JsonCreator 로 생성됩니다. Spring Boot 3 과 4 참고.
  • Ossie 로 내보내면 enum 필드는 datatype: String 과 ai_context: "Codes: PLC = Placed, SHP = Shipped, CAN = Cancelled" 가 됩니다.