- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将 JOOQ 与 PostgreSQL 结合使用,并尝试实现如下查询:
INSERT INTO dest_table (id,name,custom_data)
SELECT key as id,
nameproperty as name,
CONCAT('{"propertyA": "',property_a,'", "propertyB": "',property_b,'","propertyC": "',property_c,'"}')::json as custom_data
FROM source_table
连接/JSON 位是我在这里要问的。我实际上已经设法让它工作了,但只能通过使用这个(Kotlin):
val concatBits = mutableListOf<Field<Any>>()
... build up various bits of the concatenation ...
val concatField = concat(*(concatBits.toTypedArray())).cast(PostgresDataType.JSON)
我担心 PostgresDataType
已被弃用。文档说我应该改用 SQLDataType
,但它没有 JSON
值。
推荐的方法是什么?
编辑:更多信息......
我正在构建这样的查询:
val innerSelectFields = listOf(
field("key").`as`(DEST_TABLE.ID),
field("nameproperty").`as`(DEST_TABLE.NAME),
concatField.`as`(DEST_TABLE.CUSTOM_DATA)
)
val innerSelect = dslContext
.select(innerSelectFields)
.from(table("source_table"))
val insertInto = dslContext
.insertInto(DEST_TABLE)
.select(innerSelect)
我发布的初始查询有点误导,因为从这段代码生成的 SQL 没有(id,name,custom_data)
部分。
此外,如果重要的话,“source_table”是一个临时表,在运行时创建,因此没有自动生成的类。
最佳答案
jOOQ 目前不支持开箱即用的 JSON 数据类型。主要原因是不清楚将 JSON 数据结构绑定(bind)到哪种 Java 类型,因为 JDK 没有这样的标准类型,并且 jOOQ 不会偏爱第三方库。
目前推荐的方法是为您首选的第三方 JSON 库创建您自己的自定义数据类型绑定(bind): https://www.jooq.org/doc/latest/manual/code-generation/custom-data-type-bindings
在这种情况下,您将不再需要将绑定(bind)变量显式转换为某种 JSON 类型,因为您的绑定(bind)会透明地处理该问题。
关于postgresql - 替代已弃用的 PostgresDataType.JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53829811/
我将 JOOQ 与 PostgreSQL 结合使用,并尝试实现如下查询: INSERT INTO dest_table (id,name,custom_data) SELECT key as id,
我是一名优秀的程序员,十分优秀!