init
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
## --------------------------------------------------
|
||||
## 공통 변수 초기화 (Repository 템플릿용)
|
||||
## --------------------------------------------------
|
||||
#set( $entityName = $entity.name )
|
||||
#set( $entityClass = "${entity.name}JpaEntity" )
|
||||
#set( $repoBaseClass = "${entity.name}JpaRepositoryBase" )
|
||||
#set( $repoConcreteClass = "${entity.name}JpaRepository" )
|
||||
##
|
||||
## PK 타입 추출 (단일 키 가정; 복합키는 별도 처리 필요)
|
||||
## primitive 는 wrapper 로 변환 (제네릭 인자에 사용)
|
||||
#set( $pkType = "Long" )
|
||||
#foreach( $a in $entity.keyAttributes )
|
||||
#if( $a.hasTag("javaType") )
|
||||
#set( $pkType = $a.tagValue("javaType") )
|
||||
#else
|
||||
#set( $pkType = $a.type )
|
||||
#end
|
||||
#end
|
||||
#if( $pkType == "int" )#set( $pkType = "Integer" )#end
|
||||
#if( $pkType == "long" )#set( $pkType = "Long" )#end
|
||||
#if( $pkType == "short" )#set( $pkType = "Short" )#end
|
||||
#if( $pkType == "byte" )#set( $pkType = "Byte" )#end
|
||||
#if( $pkType == "boolean" )#set( $pkType = "Boolean" )#end
|
||||
#if( $pkType == "char" )#set( $pkType = "Character" )#end
|
||||
#if( $pkType == "float" )#set( $pkType = "Float" )#end
|
||||
#if( $pkType == "double" )#set( $pkType = "Double" )#end
|
||||
@@ -0,0 +1,4 @@
|
||||
/*
|
||||
* Created on $now.date ( $now.time )
|
||||
* Generated by Telosys ( http://www.telosys.org/ ) version $generator.version
|
||||
*/
|
||||
@@ -0,0 +1,59 @@
|
||||
## --------------------------------------------------
|
||||
## BASE Repository (@NoRepositoryBean) — DB 와 1:1, 매번 재생성 (덮어씀)
|
||||
## + Concrete( @Repository )는 "없을 때만" 1회 생성 (있으면 보존)
|
||||
## 경로는 telosys-tools.cfg 의 REPO_BASE_PKG / REPO_CONCRETE_PKG / ENTITY_CONCRETE_PKG 로 결정
|
||||
## --------------------------------------------------
|
||||
#if ( $entity.isJoinEntity() )
|
||||
#cancel("No JPA repository for join entity")
|
||||
#end
|
||||
#checkId($entity)
|
||||
#parse("include/init_var_repo.vm")
|
||||
#parse("include/java_header.vm")
|
||||
##---------------------------------------------------------------------------------------
|
||||
## 경로 계산 : 모두 telosys-tools.cfg 의 변수 기반
|
||||
## Base -> REPO_BASE_PKG
|
||||
## Concrete -> REPO_CONCRETE_PKG (없으면 1회 생성)
|
||||
##---------------------------------------------------------------------------------------
|
||||
#set( $concretePath = $REPO_CONCRETE_PKG.replace(".", "/") )
|
||||
#set( $concreteFolder = "${SRC}/${concretePath}" )
|
||||
#set( $concreteFile = "${concreteFolder}/${repoConcreteClass}.java" )
|
||||
#if( ! $fn.file($concreteFile).exists() )
|
||||
$generator.generate($entity.name, "${repoConcreteClass}.java", $concreteFolder, "main-java/XxxRepositoryConcrete_java.vm")
|
||||
#end
|
||||
##---------------------------------------------------------------------------------------
|
||||
package ${REPO_BASE_PKG};
|
||||
|
||||
import ${ENTITY_CONCRETE_PKG}.${entityClass};
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.data.repository.NoRepositoryBean;
|
||||
|
||||
/**
|
||||
* BASE repository for "${entityClass}" — generated from DB, DO NOT EDIT (regenerated).
|
||||
* 커스텀 쿼리는 ${REPO_CONCRETE_PKG}.${repoConcreteClass} 에 작성하세요.
|
||||
#if( $entity.databaseComment && $entity.databaseComment != "" )
|
||||
*
|
||||
* Table comment: ${entity.databaseComment}
|
||||
#end
|
||||
*
|
||||
* <p>주요 컬럼:</p>
|
||||
* <ul>
|
||||
#foreach( $attribute in $entity.keyAttributes )
|
||||
#if( $attribute.databaseComment && $attribute.databaseComment != "" )
|
||||
* <li>(PK) ${attribute.databaseName} — ${attribute.databaseComment}</li>
|
||||
#else
|
||||
* <li>(PK) ${attribute.databaseName}</li>
|
||||
#end
|
||||
#end
|
||||
#foreach( $attribute in $entity.nonKeyAttributes )
|
||||
#if( $attribute.databaseComment && $attribute.databaseComment != "" )
|
||||
* <li>${attribute.databaseName} — ${attribute.databaseComment}</li>
|
||||
#end
|
||||
#end
|
||||
* </ul>
|
||||
*/
|
||||
@NoRepositoryBean
|
||||
public interface ${repoBaseClass} extends JpaRepository<${entityClass}, ${pkType}>,
|
||||
JpaSpecificationExecutor<${entityClass}> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
## --------------------------------------------------
|
||||
## CONCRETE Repository (@Repository) — "없을 때만" 1회 생성. 재생성해도 보존됨.
|
||||
## 여기에 커스텀 쿼리 / 메소드를 추가하세요.
|
||||
## 경로 : telosys-tools.cfg 의 REPO_CONCRETE_PKG
|
||||
## --------------------------------------------------
|
||||
#parse("include/init_var_repo.vm")
|
||||
package ${REPO_CONCRETE_PKG};
|
||||
|
||||
import ${REPO_BASE_PKG}.${repoBaseClass};
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface ${repoConcreteClass} extends ${repoBaseClass} {
|
||||
|
||||
// ================= 커스텀 쿼리 영역 (재생성해도 보존) =================
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
#---------------------------------------------------------
|
||||
# Bundle configuration : label ; generated file ; target folder ; template ; once-flag(1)
|
||||
#---------------------------------------------------------
|
||||
#
|
||||
# Base/Concrete (인터페이스 상속) 구조로 생성됩니다 :
|
||||
# - <Entity>JpaRepositoryBase.java
|
||||
# @NoRepositoryBean
|
||||
# interface XxxJpaRepositoryBase extends JpaRepository<Entity, PK>, JpaSpecificationExecutor<Entity>
|
||||
# DB 와 1:1, 매번 재생성, 수정 금지
|
||||
# 위치: telosys-tools.cfg 의 REPO_BASE_PKG
|
||||
#
|
||||
# - <Entity>JpaRepository.java
|
||||
# @Repository
|
||||
# interface XxxJpaRepository extends XxxJpaRepositoryBase
|
||||
# 커스텀 쿼리/메소드를 여기에 추가 (없을 때만 1회 생성, 보존)
|
||||
# 위치: telosys-tools.cfg 의 REPO_CONCRETE_PKG
|
||||
# ↑ Base 템플릿이 내부에서 자동 생성하므로 여기엔 Base 만 등록.
|
||||
#
|
||||
# 엔티티 Concrete 위치(ENTITY_CONCRETE_PKG)를 import 합니다.
|
||||
#---------------------------------------------------------
|
||||
|
||||
Base (RepositoryBase) ; ${ENT}JpaRepositoryBase.java ; ${SRC}/${REPO_BASE_PKG} ; main-java/XxxRepositoryBase_java.vm ; *
|
||||
Reference in New Issue
Block a user