提问人:abdel 提问时间:11/7/2023 最后编辑:abdel 更新时间:11/7/2023 访问量:53
带有 gradle 的 jooq 和 spring boot 的问题
Problem with jooq and spring boot with gradle
问:
我在 gradle 中使用带有 spring boot 的 jooq 插件,我的 h2 表有问题。 我的settings.gradle是:
pluginManagement {
plugins {
id 'java'
id 'war'
id 'org.springframework.boot' version '2.7.17'
id 'io.spring.dependency-management' version '1.0.14.RELEASE'
}
}
我应该使用 Spring Boot 的 2.7.17 来消除旧 Spring Boot 库中的一些 CVE。
我的build.gradle是
buildscript {
ext {
kotlinVersion = "1.7.10"
postgresqlDriverVersion = '42.4.2'
coroutineVersion = "1.6.4"
}
dependencies {
classpath 'org.owasp:dependency-check-gradle:8.4.0'
}
}
plugins {
id "org.jetbrains.kotlin.jvm" version "${kotlinVersion}"
id "org.jetbrains.kotlin.plugin.allopen" version "${kotlinVersion}"
id "org.jetbrains.kotlin.plugin.noarg" version "${kotlinVersion}"
id "org.jetbrains.kotlin.plugin.jpa" version "${kotlinVersion}"
id "org.jetbrains.kotlin.plugin.spring" version "${kotlinVersion}"
id 'org.springframework.boot'
id 'io.spring.dependency-management'
id "nu.studer.jooq" version "8.2.1"
id "org.liquibase.gradle" version "2.0.4"
id "idea"
id "eclipse"
id "com.palantir.docker" version "0.35.0"
}
allOpen {
annotation("javax.persistence.Entity")
annotation("javax.persistence.MappedSuperclass")
annotation("javax.persistence.Embeddable")
}
repositories {
mavenCentral()
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-batch")
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-cache")
implementation("org.springframework.boot:spring-boot-starter-webflux")
implementation 'org.jooq:jooq-meta-extensions:3.18.7'
runtimeOnly 'com.h2database:h2'
// systemd integration: notifies systemd that the application started successfully (or failed)
implementation("com.github.jpmsilva.jsystemd:jsystemd-spring-boot-starter:2.0.1")
// kotlin
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:${coroutineVersion}")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactive:${coroutineVersion}")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor:${coroutineVersion}")
implementation("io.github.microutils:kotlin-logging-jvm:3.0.0")
// Jackson Kotlin
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
implementation("javax.xml.bind:jaxb-api:2.3.1")
implementation("javax.activation:activation:1.1")
implementation("org.eclipse.persistence:org.eclipse.persistence.moxy:2.7.8")
// Cache provider
implementation("com.github.ben-manes.caffeine:caffeine:2.9.3")
// https://mvnrepository.com/artifact/org.hibernate/hibernate-validator
implementation("org.hibernate:hibernate-validator:6.1.6.Final")
// https://mvnrepository.com/artifact/org.hibernate/hibernate-validator-annotation-processor
implementation("org.hibernate:hibernate-validator-annotation-processor:6.1.6.Final")
implementation('commons-io:commons-io:2.11.0')
implementation("commons-codec:commons-codec:1.15")
// Postgresql driver
implementation("org.postgresql:postgresql:${postgresqlDriverVersion}")
//jooq
implementation("org.springframework.boot:spring-boot-starter-jooq")
jooqGenerator("org.postgresql:postgresql:${postgresqlDriverVersion}")
jooqGenerator("org.jooq:jooq-meta-extensions")
// liquibase
liquibaseRuntime("org.liquibase:liquibase-core:3.8.1")
liquibaseRuntime("org.liquibase:liquibase-groovy-dsl:2.1.1")
liquibaseRuntime("org.yaml:snakeyaml:1.15")
liquibaseRuntime("org.postgresql:postgresql:${postgresqlDriverVersion}")
liquibaseRuntime("ch.qos.logback:logback-core:1.2.3")
liquibaseRuntime("ch.qos.logback:logback-classic:1.2.3")
liquibaseRuntime("org.slf4j:slf4j-api:1.7.25")
liquibaseRuntime("javax.xml.bind:jaxb-api:2.3.1")
//embed the webapp in the fat JAR
runtimeOnly(project(":logs-frontend"))
// ------- TEST -------
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.springframework.batch:spring-batch-test")
testImplementation("io.mockk:mockk:1.7.15")
testImplementation("net.bytebuddy:byte-buddy:1.9.2")
testImplementation("net.bytebuddy:byte-buddy-agent:1.9.2")
testImplementation "org.junit.jupiter:junit-jupiter-api:5.3.1"
testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.3.1")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.3.1")
testRuntimeOnly("org.junit.vintage:junit-vintage-engine:5.3.1")
annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
}
compileJava.dependsOn(processResources)
compileKotlin {
kotlinOptions {
jvmTarget = "1.8"
}
}
compileTestKotlin {
kotlinOptions {
jvmTarget = "1.8"
}
}
tasks.named('check') {
dependsOn 'dependencyCheckAnalyze'
}
jooq {
// use jOOQ version defined in Spring Boot
version = dependencyManagement.importedProperties['jooq.version']
configurations {
main {
generationTool {
generator {
name = "org.jooq.codegen.KotlinGenerator"
database {
name = "org.jooq.meta.extensions.ddl.DDLDatabase"
properties {
property {
key = 'scripts'
value = 'src/main/resources/db/changelog/main/*.sql'
}
property {
key = 'sort'
value = 'alphanumeric'
}
property {
key = 'defaultNameCase'
value = 'lower'
}
}
includes = '.*'
excludes = 'INFORMATION_SCHEMA.DOMAINS'
}
generate {
fluentSetters = true
pojos = true
javaTimeTypes = true
}
target {
packageName = "fr.logs.jooq"
}
}
}
}
}
}
tasks.named('generateJooq').configure {
// make jOOQ task participate in incremental builds (which is also a prerequisite for participating in build caching)
allInputsDeclared = true
// make jOOQ task participate in build caching
outputs.cacheIf { true }
}
compileKotlin.dependsOn(tasks.named('generateJooq'))
bootJar {
dependsOn(":logs-frontend:webjar")
archiveFileName = "testjars-${rootProject.version}.jar"
exclude("**/application*.yaml", "**/*.jks")
launchScript()
}
bootJarMainClassName {
dependsOn(":logs-frontend:webjar")
}
apply plugin: 'org.owasp.dependencycheck'
dependencyCheck {
failOnError=true
failBuildOnCVSS = 1
}
但是当尝试命令gradlew generateJooq时,我出现以下错误:
原因:org.h2.jdbc.JdbcSQLSyntaxErrorException:精度 (“2147483647”) 必须介于“1”和“10000000000”之间;SQL算法 语句:选择“INFORMATION_SCHEMA”。域。DOMAIN_SCHEMA, INFORMATION_SCHEMA。域。DOMAIN_NAME, INFORMATION_SCHEMA。域。TYPE_NAME, INFORMATION_SCHEMA。域。精度,INFORMATION_SCHEMA。 域。规模,INFORMATION_SCHEMA。DOMAINS.IS_NULLABLE, INFORMATION_SCHEMA。域。COLUMN_DEFAULT, INFORMATION_SCHEMA。域。CHECK_CONSTRAINT 起 INFORMATION_SCHEMA。域,其中 (INF ORMATION_SCHEMA。域。DOMAIN_SCHEMA in (cast(? as varchar(2147483647))、cast(? as varchar(2147483647))) 和 INFORMATION_SCHEMA。域。TYPE_NAME <> 'ENUM') 排序 INFORMATION_SCHEM A.DOMAINS.DOMAIN_SCHEMA, INFORMATION_SCHEMA。域。DOMAIN_NAME [90150-214] 在 org.h2.message.DbException.getJdbcSQLException(DbException.java:632) 在 org.h2.message.DbException.getJdbcSQLException(DbException.java:477) 在 org.h2.message.DbException.get(DbException.java:223) 在 org.h2.command.Parser.getInvalidPrecisionException(Parser.java:6325) 在 org.h2.command.Parser.readIfDataType1(Parser.java:6285) 在 org.h2.command.Parser.readIfDataType(Parser.java:6087) 在 org.h2.command.Parser.parseColumnWithType(Parser.java:6069) 在 org.h2.command.Parser.readTermWithoutIdentifier(Parser.java:5107) 在 org.h2.command.Parser.readTerm(Parser.java:4901) 在 org.h2.command.Parser.readFactor(Parser.java:3398) 在 org.h2.command.Parser.readSum(Parser.java:3385) 在 org.h2.command.Parser.readConcat(Parser.java:3350) 在 org.h2.command.Parser.readCondition(Parser.java:3132) 在 org.h2.command.Parser.readExpression(Parser.java:3053) 在 org.h2.command.Parser.readInPredicate(Parser.java:3277) 在 org.h2.command.Parser.readConditionRightHandSide(Parser.java:3167) 在 org.h2.command.Parser.readCondition(Parser.java:3144) 在 org.h2.command.Parser.readExpression(Parser.java:3053) 在 org.h2.command.Parser.readTermWithoutIdentifier(Parser.java:4990) 在 org.h2.command.Parser.readTerm(Parser.java:4901) 在 org.h2.command.Parser.readFactor(Parser.java:3398) 在 org.h2.command.Parser.readSum(Parser.java:3385) 在 org.h2.command.Parser.readConcat(Parser.java:3350) 在 org.h2.command.Parser.readCondition(Parser.java:3132) 在 org.h2.command.Parser.readExpressionWithGlobalConditions(Parser.java:3043) 在 org.h2.command.Parser.parseSelect(Parser.java:2881) 在 org.h2.command.Parser.parseQueryPrimary(Parser.java:2762) 在 org.h2.command.Parser.parseQueryTerm(Parser.java:2633) 在 org.h2.command.Parser.parseQueryExpressionBody(Parser.java:2612) 在 org.h2.command.Parser.parseQueryExpressionBodyAndEndOfQuery(Parser.java:2605) 在 org.h2.command.Parser.parseQueryExpression(Parser.java:2598) 在 org.h2.command.Parser.parseQuery(Parser.java:2567) 在 org.h2.command.Parser.parsePrepared(Parser.java:724) 在 org.h2.command.Parser.parse(Parser.java:689) 在 org.h2.command.Parser.parse(Parser.java:661) 在 org.h2.command.Parser.prepareCommand(Parser.java:569) 在 org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:631) 在 org.h2.engine.SessionLocal.prepareCommand(SessionLocal.java:554) 在 org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1116) 在 org.h2.jdbc.JdbcPreparedStatement。(JdbcPreparedStatement.java:92) 在 org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:288) 在 org.jooq.impl.ProviderEnabledConnection.prepareStatement(ProviderEnabledConnection.java:109) 在 org.jooq.impl.SettingsEnabledConnection.prepareStatement(SettingsEnabledConnection.java:73) 在org.jooq.impl.AbstractResultQuery.prepare(AbstractResultQuery.java:262) 在org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:342) ...另外 15
但是我对 2.6.0 spring boot 版本没有问题。
有人有想法吗? 谢谢!
答: 暂无答案
评论
1000000000
2147483647
Integer.MAX_VALUE