ElastiCORE Annotation Complete Guide
Overview
Complete reference for all annotations used in ElastiCORE DSL with detailed usage and examples.
1. Entity Meta Annotation
1.1 기본 엔티티 선언
meta: entity
- Description: 기본 JPA 엔티티로 선언
- Generated Code:
@Entity,@Table포함
1.2 추상 엔티티
meta: entity @abstract
- Description: 상속 전용 추상 엔티티
- Generated Code:
abstract class로 생성 - Usage: BaseEntity, AuditEntity 등 공통 필드 정의
1.3 엔티티 상속
meta: entity @extend(ParentEntity)
- Description: 부모 엔티티로부터 상속
- Generated Code:
extends ParentEntity - Example:
entity:
AuditEntity:
meta: entity @abstract @extend(BaseEntity)
1.4 REST API 노출
meta: entity @expose
meta: entity @expose(pageSize)
- Description: REST API로 노출하며 검색 DTO 자동 생성
- Parameters:
pageSize- 기본 페이지 크기 - Default: 자동으로 검색 가능한 필드 생성 (string: like, datetime: between)
- Generated Code: Entity, DTO, Repository, Service, Controller, SearchDTO 클래스 생성
- Example:
Article:
meta: entity @expose(50) # 페이지당 50개 항목, 검색 DTO 생성
fields:
title: string(200)! # 자동으로 like 검색 생성
1.5 서비스 레이어만 노출
meta: entity @service
meta: entity @service(pageSize)
- Description: Controller 없이 Service 레이어만 생성하며 검색 DTO 자동 생성
- Parameters:
pageSize- 기본 페이지 크기 - Default: 자동으로 검색 가능한 필드 생성 (string: like, datetime: between)
- Generated Code: Entity, DTO, Repository, Service, SearchDTO 클래스 생성 (Controller 제외)
- Usage: 내부 서비스 로직에서만 사용하고 외부 REST API로 노출하지 않는 경우
- Example:
InternalData:
meta: entity @service(30) # 페이지당 30개 항목, Controller 생성 안함
fields:
name: string(100)!
value: string(500)