Using PostgreSQL row_to_json with jOOQ



还有什么比

更地道的吗?
List<JSON> jsons = context.fetch("select row_to_json(p) j from persons p")
.stream()
.map(r -> r.get("j", JSON.class))
.toList();

使用row_to_json()与jOOQ?

我尝试使用function("row_to_json", ...),但不知道如何填充剩余的参数。

这种语法(例如Oracle有JSON_OBJECT(*))可能在不久的将来通过#10685开箱支持。

DSL.function()方法需要Field<?>...列表,因此目前它不能接受表。但是你也可以为你的函数使用一个普通的SQL模板,而不必使整个查询成为一个模板,例如:

static Field<JSON> rowToJson(Table<?> t) {
return DSL.field("row_to_json({0})", SQLDataType.JSON, t);
}

现在像这样使用:

context.select(rowToJson(PERSONS)).from(PERSONS).fetch();

最新更新