본문으로 건너뛰기

Customization (Block Comments)

Overview

Repository 등 생성된 코드에 커스텀 메서드를 추가할 때는 블록 코멘트 방식을 사용합니다. 이 방식을 사용하면 ElastiCORE가 코드를 재생성할 때에도 커스텀 코드가 보존됩니다.

Block Comment Syntax

커스텀 코드는 반드시 // !----// ----! 블록 내에 작성해야 합니다:

// !-----------------------------------------------------------

@Query("SELECT e FROM Entity e WHERE e.name = :name")
List<Entity> findByName(@Param("name") String name);

// ------------------------------------------------------------!

Rules

중요
  • 반드시 // !---- 로 시작하고 // ----! 로 끝내야 합니다
  • 해당 블록은 소스 내에서 한 번만 사용할 수 있습니다
  • 한 영역 정의 후 여러 개발자가 코딩 가능합니다
  • 블록 외부에 작성된 커스텀 코드는 재생성 시 유실될 수 있습니다

예시

Repository에 커스텀 쿼리 추가

@Repository
public interface ArticleRepository extends JpaRepository<Article, String> {

// ElastiCORE가 자동 생성한 메서드들
// ...

// !-----------------------------------------------------------

@Query("SELECT a FROM Article a WHERE a.board.bid = :boardId ORDER BY a.createDate DESC")
List<Article> findRecentByBoard(@Param("boardId") Long boardId);

@Query("SELECT COUNT(a) FROM Article a WHERE a.board.bid = :boardId")
long countByBoard(@Param("boardId") Long boardId);

// ------------------------------------------------------------!
}

Service에 비즈니스 로직 추가

@Service
public class ArticleService {

// ElastiCORE가 자동 생성한 메서드들
// ...

// !-----------------------------------------------------------

public List<ArticleDTO> getRecentArticles(Long boardId, int limit) {
// 커스텀 비즈니스 로직
return articleRepository.findRecentByBoard(boardId)
.stream()
.limit(limit)
.map(this::toDTO)
.collect(Collectors.toList());
}

// ------------------------------------------------------------!
}