Я пытаюсь выполнить простую функцию updateRecord, но она выдает мне ошибку, из-за которой я не могу найти причину или другие люди, имеющие ее.
Пример тестового проекта можно найти по адресу: https://github.com/billbarni/jooq-studer-h2-test
Java-код:
import static mypackage.database.model.h2.public_.Tables.EXPRESSAO;
import mypackage.database.model.h2.public_.tables.pojos.Expressao;
import mypackage.database.model.h2.public_.tables.records.ExpressaoRecord;
public void updateQuery(Expressao expressaoPojo) {
ExpressaoRecord expressaoRecord = ctx.newRecord(EXPRESSAO, expressaoPojo);
ctx.executeUpdate(expressaoRecord); // Error with this parameter
}
Выражение создания базы данных:
CREATE TABLE
expressao (
id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
nome VARCHAR(50) NOT NULL,
conteudo VARCHAR NOT NULL,
qtd_tempo INT NOT NULL,
tipo_tempo VARCHAR(5) NOT NULL,
data_inicial TIMESTAMP NOT NULL
);
Конфигурации генератора Gradle:
plugins {
id 'nu.studer.jooq' version '2.0.9'
}
dependencies {
compile group: 'org.jooq', name: 'jooq-codegen', version: '3.10.4'
jooqRuntime 'com.h2database:h2:1.4.197'
}
jooq {
h2(sourceSets.main) {
jdbc {
driver = 'org.h2.Driver'
url = 'jdbc:h2:file:./db'
user = 'sa'
password = ''
}
generator {
name = 'org.jooq.util.DefaultGenerator'
strategy {
name = 'org.jooq.util.DefaultGeneratorStrategy'
}
database {
name = 'org.jooq.util.h2.H2Database'
}
generate {
relations = true
deprecated = false
records = true
immutablePojos = true
fluentSetters = true
}
target {
packageName = 'mypackage.database.model.h2'
directory = 'src/main/java'
}
}
}
}
Java даетЭта ошибка перед компиляцией:
executeUpdate (R) в DSLContext не может быть применен к (mypackage.database.model.h2.public_.tables.records.ExpressaoRecord) причине: нет экземпляровпеременные типа (типов) R существуют так, что ExpressaoRecord соответствует UpdatableRecord
В чем причина этой проблемы?Что я делаю не так?
Obs .: У меня есть 2 базы данных (firebird и h2), и я использую генератор jOOQ из Gradle для автоматической генерации pojos и других классов.Они не делятся POJO или чем-то сложным.Проект ОЧЕНЬ маленький и простой.
Obs 2 .: Я использовал несколько версий библиотек jOOQ (от 3.9 до новой 3.11), и проблема сохраняется.
Лукас Эдер, бог jOOQЯ жду вашего возвращения, чтобы спасти меня от этого многословного сна.