inflearn logo
강의

講義

知識共有

本当のjOOQ! Type Safe SQL with Java

(実践)jOOQプロジェクトを作成する

build.gradle.kts

解決済みの質問

755

chhong

投稿した質問数 4

3

plugins {
    id("org.springframework.boot") version "3.3.0"
    id("io.spring.dependency-management") version "1.1.5"
    kotlin("jvm") version "1.9.24"
    kotlin("plugin.spring") version "1.9.24"
    id("nu.studer.jooq") version "9.0"
}

group = "com.sight"
version = "0.0.1-SNAPSHOT"

java {
    toolchain {
       languageVersion = JavaLanguageVersion.of(17)
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-jooq")
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
    implementation("org.jetbrains.kotlin:kotlin-reflect")
    runtimeOnly("com.mysql:mysql-connector-j")
    testImplementation("org.springframework.boot:spring-boot-starter-test")
    testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
    testRuntimeOnly("org.junit.platform:junit-platform-launcher")

    jooqGenerator("com.mysql:mysql-connector-j")
    jooqGenerator("org.jooq:jooq")
    jooqGenerator("org.jooq:jooq-meta")
}

kotlin {
    compilerOptions {
       freeCompilerArgs.addAll("-Xjsr305=strict")
    }
}

tasks.withType<Test> {
    useJUnitPlatform()
}

val dbUser: String = System.getProperty("db-user") ?: "root"
val dbPassword: String = System.getProperty("db-passwd") ?: "passwd"

jooq {
    configurations {
       create("sakilaDB") {
          generateSchemaSourceOnCompilation.set(false) // 기본적으로 스키마 소스 생성을 비활성화합니다.

          jooqConfiguration.apply {
             jdbc.apply {
                driver = "com.mysql.cj.jdbc.Driver"
                url = "jdbc:mysql://localhost:3306/sakila"
                user = dbUser
                password = dbPassword
             }
             generator.apply {
                name = "org.jooq.codegen.KotlinGenerator" // 코틀린 제너레이터 명시
                database.apply {
                   name = "org.jooq.meta.mysql.MySQLDatabase"
                   inputSchema = "sakila"
                }
                generate.apply {
                   isDaos = true
                   isRecords = true
                   isFluentSetters = true
                   isJavaTimeTypes = true
                   isDeprecated = false
                }
                target.apply {
                   directory = "src/generated"
                }
             }
          }
       }
    }
}

sourceSets {
    main {
       kotlin {
          srcDirs(listOf("src/main/kotlin", "src/generated"))
       }
    }
}

 3.3.0 버전은 jooq 최신버전을 사용하고 있는 것 같아서 group 재설정은 뺐습니다.

java sql spring-boot jooq dsl

回答 2

1

sdm32851630

chhong님 안녕하세요.

맞습니다 ㅎㅎ 강의를 촬영 할 시점에는  3.3.0 버전이 나오지 않아 부득이하게

spring-boot-starter-jooq에서 강제로 의존성을 제거하고 jOOQ 3.19.5 버전을 추가했었는데요.

(spring boot 3.2.3 버전에서는 기본 설정이 jOOQ 3.18.11 이였음)

 

spring boot 3.3.0에서는 jOOQ 3.19.8이 기본으로 들어가서 group 재설정은 하실 필요가 없습니다.

 

해당 질문은 완료처리 하도록 하겠습니다.

공유해주셔서 감사합니다 🙂

0

Kwonkyu Park

오 코틀린 설정! 감사요

안녕하세요 FetchGroups에서 Multiset방식 사용하면 어떤가 해서 물어봅니다

0

60

1

monosoul jooq plugin-docker registry 변경

1

101

3

질문) jOOQ 프로젝트에서 CI/CD 자동화 문의

1

173

3

generate dao 를 통한 삽입 시 pk auto-increment 가 적용되지 않습니다

1

109

1

jooq+flyway에서 질문드립니다

0

249

2

안녕하세요 생성일,생성자,수정일,수정자는 자동으로 해주는 기능이 있을까요?

0

206

2

[사례] Maven에서 TestContainers 플러그인 적용시 예외발생

0

142

0

Routines 관련 질문

1

159

2

JOOQ 환경설정 중에 db 패스워드 관련 질문입니다.

1

173

1

Sakila DB 도커 컴포즈 구성 시 팁

1

152

1

DB 벤더별 내장함수에 대한 방언 지원 듣고 질문드려요

1

176

1

인텔리제이 테마 질문

2

423

3

kotlin jOOQ , 컴파일시 힙메모리 부족

0

523

2

pojo 에 setter 가 없는 경우가 있을까요?

1

189

1

FilmWithActor로 fetch 시 select와 생성자의 매개변수 순서가 다를 경우 map이 정상적으로 이루어 지지않는 케이스

1

228

1

from절 subquery table filed nullable 처리

1

221

1

kotlin mapping error

0

517

4

db column은 not null로 되어 있는데 kotlin에서 pojo가 다 nullable로 생성되요.

0

514

1

하나의 디비를 여러 백엔드 서버가 필요로 할 때, flyway 관리

1

887

5

dslContext 작성 시 fetchGroups 이렇게 작성해도 될까요?

2

638

6

update with dto 질문

1

267

1

R2DBC 환경에서 jOOQ generate 된 Dao를 사용할 수 있는 방법이 있을까요?

2

1243

3

IDE로 스프링부트 실행없이 jooq로 짠 쿼리 결과를 바로 확인하는 방법이 있을까요?

1

502

1

마리아 DB 쓰시는분들은 mysql 파일 쓰시면됩니다.

1

371

1