使用 Spring Boot 处理 postgresql 的 jsonb 数据的最佳方法是什么?

问题描述 投票:0回答:1

我有一个 Student 对象,我将其存储在 jsonb 列中。 学生有地址和一系列主题。 jsonb 列数据看起来像这样:

    {
      "id": 1,
      "name": "John doe",
      "address": {
        "street": "123 street",
        "city": "new york",
        "country": "US",
        "postalcode": "123456"
      },
      "subjects": [
        {
          "subjectId": "123",
          "name": "science",
          "modules": 12
        },
        {
          "subjectId": "124",
          "name": "physics",
          "modules": 5
        }
      ]
    }

那么,利用spring boot data JPA,我想实现:

  1. 修改地址。
  2. 修改主题列表中的项目。
  3. 从列表中添加/删除主题。

我看到过这样的选项:

  1. 获取整个对象并将其替换为更新后的对象。
  2. 使用“jsonb_set”函数。

但是,我们有没有其他方法可以使用 spring data JPA 获得完全控制和更灵活地修改 jsonb 数据? 总的来说,我正在寻找处理这种情况的最佳方法。

java postgresql spring-boot spring-data-jpa jsonb
1个回答
0
投票

Spring 中默认的 JPA 实现是 Hibernate。为了获得更多控制和灵活性,您可以使用 Hibernate 6 引入的注释:@JdbcTypeCode(SqlTypes.JSON)。请参阅 Thorben Janssen 的博客 以供参考。希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.