사용자 도구

사이트 도구


gradle:querydsl_native_sql_codegen

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
gradle:querydsl_native_sql_codegen [2017/12/15 20:05]
kwon37xi
gradle:querydsl_native_sql_codegen [2018/08/31 13:53] (현재)
kwon37xi [Gradle 에서 Native SQL Code Generation]
줄 2: 줄 2:
   * [[java:querydsl|QueryDSL]]   * [[java:querydsl|QueryDSL]]
   * [[gradle:jpa_metamodel_generation|Gradle에서 JPA 2 MetaModel 생성]]   * [[gradle:jpa_metamodel_generation|Gradle에서 JPA 2 MetaModel 생성]]
 +  * [[https://github.com/querydsl/querydsl/blob/master/querydsl-sql-codegen/src/main/java/com/querydsl/sql/codegen/MetaDataExporter.java|MetaDataExporer.java]] 에서 속성 값 확인
 +  * [[https://github.com/querydsl/querydsl/blob/master/querydsl-sql-codegen/src/main/java/com/querydsl/sql/codegen/ant/AntMetaDataExporter.java|AntMetaDataExporter.java]] 에서 ant 속성값 확인
  
 +====== ANT 사용 ======
 +<code groovy>
 +dependencies {
 +    compile "com.querydsl:querydsl-sql:${queryDslVersion}"
 +}
 +
 +configurations {
 +    queryDslNativeSql
 +}
 +
 +dependencies {
 +    queryDslNativeSql "com.querydsl:querydsl-sql-codegen:4.1.4"
 +    queryDslNativeSql "com.microsoft.sqlserver:mssql-jdbc"
 +}
 +
 +task generateQueryDslNative << {
 +    file('src/main/generated-querydslnative').deleteDir()
 +    file('src/main/generated-querydslnative').mkdirs()
 +
 +    ant.taskdef(name: 'generateQueryDslNative', classname: 'com.querydsl.sql.codegen.ant.AntMetaDataExporter', classpath: configurations.queryDslNativeSql.asPath)
 +    ant.generateQueryDslNative(
 +            jdbcDriver: '-JDBC-Driver-',
 +            jdbcUrl: '-JDBC-URL-',
 +            jdbcUser: 'username',
 +            jdbcPassword: "password",
 +            namePrefix: 'QS',
 +            packageName: 'test',
 +            schemaPattern: 'dbo', // SQLServer 등에서 필요
 +            tableNamePattern: 'table1|table2', // 특정 테이블만 생성
 +            targetFolder: 'src/main/generated-querydslnative'
 +    )
 +}
 +
 +sourceSets {
 +    main {
 +        java {
 +             srcDirs += 'src/main/generated-querydslnative'
 +
 +        }
 +    }
 +}
 +
 +idea {
 +    module {
 +         generatedSourceDirs += file('src/main/generated-querydslnative') // just hint
 +    }
 +}
 +</code>
 +
 +===== 코드 직접 호출 : 비권장 =====
  
 먼저 [[http://technicles.com/create-oracle-database-jdbc-connection-in-gradle/|Create Oracle database JDBC connection in gradle]] 를 통해 JDBC Driver를 build script 에서 로딩해야한다. 먼저 [[http://technicles.com/create-oracle-database-jdbc-connection-in-gradle/|Create Oracle database JDBC connection in gradle]] 를 통해 JDBC Driver를 build script 에서 로딩해야한다.
  
 <code groovy> <code groovy>
 +import java.sql.Connection
 +import java.sql.DriverManager
 +import com.mysema.query.sql.codegen.MetaDataExporter
 +
 buildscript { buildscript {
     dependencies {     dependencies {
줄 34: 줄 90:
     exporter.namePrefix = 'S'     exporter.namePrefix = 'S'
     exporter.packageName = 'package.to.querydslsql'     exporter.packageName = 'package.to.querydslsql'
-    exporter.targetFolder = file('src/generated/java-jpa') +    exporter.targetFolder = file('src/generated/java-querydsl') 
-    exporter.export(connection.getMetaData())+     
 +    // 기타 설정들 
 +    
     exporter.export(connection.getMetaData())     exporter.export(connection.getMetaData())
  
gradle/querydsl_native_sql_codegen.1513337744.txt.gz · 마지막으로 수정됨: 2017/12/15 20:05 저자 kwon37xi