jpa-query-builder

요구사항

step1 요구사항

  • 요구사항 1 - 클래스 정보 출력
  • 요구사항 2 - test로 시작하는 메소드 실행
  • 요구사항 3 - @PrintView 애노테이션 메소드 실행
  • 요구사항 4 - private field에 값 할당
  • 요구사항 5 - 인자를 가진 생성자의 인스턴스 생성

step2 요구사항

  • 요구사항 1 - Person객체를 통해 create 쿼리 만들어보기
  • 요구사항 2 - 추가된 정보를 통해 create 쿼리 만들어보기
  • 요구사항 3 - 정보를 바탕으로 drop 쿼리 만들어보기

step3 요구사항

  • 요구사항 1 - Person 객체를 통해 insert 쿼리 만들어보기
  • 요구사항 2 - Person 객체를 통해 findAll 기능 구현하기
  • 요구사항 3 - Person 객체를 통해 findById 기능 구현하기
  • 요구사항 4 - Person 객체를 통해 delete 쿼리 만들어보기

step4 요구사항

  • 요구사항 1 - find 구현하기
  • 요구사항 2 - persist (insert) 구현하기
  • 요구사항 3 - remove (delete) 구현하기

Class Diagram

classDiagram
    class EntityQueryBuilder {
        - EntityMetadataExtractor entityMetadataExtractor
        + EntityQueryBuilder(type: Class<?>)
    }
    class EntityMetadataExtractor {
        - TableMetadataExtractor tableMetaDataExtractor
        - FieldMetadataExtractors fieldMetaDatas
        + EntityMetadataExtractor(type: Class<?>)
    }
    class TableMetadataExtractor {
        - Class<?> type
        + TableMetadataExtractor(type: Class<?>)
    }
    class FieldMetadataExtractors {
        - List<FieldMetadataExtractor> fieldMetadataExtractorList
        + FieldMetadataExtractors(type: Class<?>)
    }
    class FieldMetadataExtractor {
        - Field field
        + FieldMetadataExtractor(field: Field)
    }
    class ColumnOptionFactory {
        + createColumnOption(Field field): String
    }
    class AnnotationHandler {
        - T annotation
        + AnnotationHandler(field: Field, annotationType: Class<T>)
        + metaInfos(): List<ColumnOption>
    }
    class ColumnAnnotationHandler {
        + ColumnAnnotationHandler(field: Field)
        + metaInfos(): List<ColumnOption>
    }
    class GeneratedValueAnnotationHandler {
        + GeneratedValueAnnotationHandler(field: Field)
        + metaInfos(): List<ColumnOption>
    }
    class IdAnnotationHandler {
        + IdAnnotationHandler(field: Field)
        + metaInfos(): List<ColumnOption>
    }
    
    EntityQueryBuilder --* EntityMetadataExtractor
    EntityMetadataExtractor --* TableMetadataExtractor
    EntityMetadataExtractor --* FieldMetadataExtractors
    FieldMetadataExtractors --* FieldMetadataExtractor
    FieldMetadataExtractor --|> ColumnOptionFactory : uses
    ColumnOptionFactory --* AnnotationHandler : uses
    AnnotationHandler <|-- ColumnAnnotationHandler : implements
    AnnotationHandler <|-- GeneratedValueAnnotationHandler : implements
    AnnotationHandler <|-- IdAnnotationHandler : implements
Loading