열거형
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"가 됩니다.