我使用这个H2特性在jdbc中为JSONB创建一个别名:
spring.datasource.url: jdbc:h2:mem:testdb;INIT=create domain if not exists jsonb as text;MODE=PostgreSQL
但是,JOOQ的码元液化基支持(生成器指向清算基文件)不识别JSONB列类型。我不断地得到:
原因: liquibase.exception.DatabaseException:未知数据类型:"JSONB";
有没有一种方法可以告诉生成器将此数据类型化成文本?
我最初有以下SQL函数:
CREATE FUNCTION resolve_device(query JSONB) RETURNS JSONB...
下面的代码调用jOOQ生成的方法:
final JsonArray jsonArray = jooqDWH.select(resolveDevice(queryJson)).fetchOne().value1().getAsJsonArray();
final JsonObject o = jsonArray.get(0).getAsJsonObject();
这个效果很好。不过,我需要返回一个真正的设备对象,而不是JSON blob,因此我将SQ
我有两辆桌子的车。第一个表中的Car将列详细信息作为文本,第二个表中的列细节作为JSONB。但是我只有一个生成的类带有文本字段。如何使用生成的类Car将批处理插入到表2中,我需要将字段从文本转换为JSONB。我用dsl.batchInsert(records).execute();插入表
它是jooq生成类中的my字段。
public final TableField<Car, String> DETAILS = createField("details", org.jooq.impl.SQLDataType.TExT.nullable(false).default
Jooq不生成类。我在postgresql 42.2.24中使用gradle插件https://github.com/etiennestuder/gradle-jooq-plugin。我的问题是什么?这是我的build.gradle plugins {
id 'org.springframework.boot' version '2.5.7'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'nu.studer.jo
试图实现映射到包含映射的对象的自定义JSONB绑定。生成的代码引发由以下行引起的None of the following functions can be called with the arguments supplied错误:
val SOME_FIELD: TableField<SomeRecord, Jsonb?> = createField(DSL.name("meta"), SQLDataType.JSONB.nullable(false).defaultValue(DSL.field("'{}'::jsonb", SQ