====== jOOQ gradle code generation ====== * [[java:jooq|jOOQ]] Gradle Code Generation * [[https://github.com/etiennestuder/gradle-jooq-plugin|Gradle jOOQ plugin]] * [[http://kingbbode.tistory.com/36|jOOQ !! (Java Object Oriented Querying)]] * [[https://www.jooq.org/doc/3.10/manual/code-generation/codegen-matcherstrategy/|CodeGen Matcher Strategy]] : 프로그래밍 작업없이 설정만으로 생성되는 Java Class의 Table과 필드 이름 등의 패턴을 지정할 수 있다(camel case, underbar, 혹은 이름변환 없이 등) * [[https://www.jooq.org/doc/3.5/manual/sql-execution/fetching/data-type-conversion/|Data type conversion]] 에서 Type Converter를 만들고 [[https://www.jooq.org/doc/3.7/manual/code-generation/custom-data-types/|Custom data types and type conversion]] 소스 생성시 타입 변환 ===== Gradle 에서 코딩으로 code generation ===== * [[https://www.jooq.org/doc/3.10/manual/code-generation/codegen-gradle/|Running the code generator with Gradle]] * [[https://gist.github.com/kwon37xi/c0919d79d8af49d9113f5b46bd5c0fcf|jOOQ Gradle Code Generation GIST 참조]] ===== From JPA ===== * [[https://www.jooq.org/doc/3.10/manual/code-generation/codegen-jpa/|JPADatabase: Code generation from entities]] * JPA Entity로 부터 코드를 생성할 수 있다. 내부적으로 Hibernate가 H2 데이터베이스에 DB를 생성하고 이를 생성기가 역으로 코드로 만드는 작업을 한다. ===== From Schema XML ===== * [[https://www.jooq.org/doc/3.10/manual/code-generation/codegen-xml/|XMLDatabase: Code generation from XML files]] * DB Schema 를 XML로 만들어 두고 여기서 코드를 생성할 수 있다. DB 인스턴스가 항상 떠 있을 필요가 없어서 좋다. ===== From DDL SQL ===== * [[https://www.jooq.org/doc/3.10/manual/code-generation/codegen-ddl/|DDLDatabase: Code generation from SQL files]] * [[java:database:migration:flyway|Flyway Java Database Migration]] Flyway 마이그레이션 스크립트 같은 DDL SQL 파일로부터 코드를 생성할 수 있다. SQL을 파싱해 H2 Database를 생성하고 이를 통해 다시 코드를 생성하는 방식이다.