【问题标题】:SQL or Spring JDBC return object of objectsSQL 或 Spring JDBC 返回对象的对象
【发布时间】:2020-09-19 04:04:20
【问题描述】:

postgres-sql 或 Spring JDBC 是否可以返回以下形状的数据:

    {
      id: 1
      profit: 200
      sales_rep: {
        name: 'bob',
        age: 9,
        gender: male
    }

名称、年龄和性别在到达存储库层之前在键“sales_rep”中的位置?还是我必须检索平面数据,然后使用 java 在存储库层中将其放入我想要的形状。

请假设我们使用两个表 'earnings' 和 'sales_rep' 外键为 'sales_rep_id' 以便于论证。

【问题讨论】:

    标签: java postgresql spring-jdbc


    【解决方案1】:

    在 Postgres SQL 中,您可以使用 json 函数轻松做到这一点:

    select jsonb_build_object(
        'id',        e.id,
        'profit',    e.profit
        'sales_rep', jsonb_build_object(
            'name',   sr.name,
            'age',    sr.age,
            'gender', sr.gender
        )
    ) js
    from earnings e
    inner join sales_rep sr on sr.sales_rep_id = e.sales_rep_id
    

    这会为您提供一个结果集,其中每个 earning 一行和一个列,其中包含具有您要求的结构的 jsonb 有效负载。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-26
      • 1970-01-01
      • 2018-12-30
      • 2018-07-11
      相关资源
      最近更新 更多