【问题标题】:Using Jooq with jsonb_agg on postgreSQL without code generator?在没有代码生成器的情况下在 postgreSQL 上使用带有 jsonb_agg 的 Jooq?
【发布时间】:2018-04-21 11:14:30
【问题描述】:

我想将 Jooq 与 jsonb_agg 一起使用,以创建可以作为流读取的 jsonb 对象。有没有办法在不让 Jooq 查看数据库的情况下做到这一点?

我知道我可以让 Jooq 查看数据库并决定它找到什么聚合,但是有没有一种方法可以在不经过自省过程的情况下使用它?我已经浏览了 4 次文档,但没有看到答案。

【问题讨论】:

    标签: java postgresql jooq jsonb


    【解决方案1】:

    所以答案隐藏在 DSL 文档中,关于定义字段。

    之前的所有示例都使用了以下变体:

    create.select(field("example1"), field("example2")).from(table(a)...
    

    但是您可以定义自己的字段,甚至是内联函数定义。

    字段定义可能类似于:

    Field<Object> example1 = field("example1");
    

    或者如果你想定义一个类型:

    Field<String> example2 = field("example2", String.class);
    

    当您想要定义更复杂的字段时,这一点变得很重要,例如:

    Field<String> jsonAry = function("jsonb_agg", String.class, example2);
    

    Jooq 真的很擅长让事情像这样组成。然后你可以:

    Fiend<String> fullJson = function("jsonb_build_object", String.class, example1, example2);
    

    然后如果你 groupBy(example1) 你会得到一个不错的 jsonb_agg 对象。

    【讨论】:

    猜你喜欢
    • 2017-12-08
    • 2018-05-21
    • 2020-07-01
    • 2016-03-13
    • 2016-01-02
    • 2021-09-28
    • 1970-01-01
    • 2018-04-15
    • 2020-02-28
    相关资源
    最近更新 更多