PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

bagaimana cara menyimpan PostgreSQL jsonb menggunakan SpringBoot + JPA?

Mencoba ini tetapi tidak mengerti apa-apa!

Untuk sepenuhnya bekerja dengan jsonb di Spring Data JPA (Hibernasi) dengan lib tipe hibernasi Vlad Mihalcea, Anda cukup melakukan hal berikut:

1) Tambahkan lib ini ke proyek Anda:

<dependency>
    <groupId>com.vladmihalcea</groupId>
    <artifactId>hibernate-types-52</artifactId>
    <version>2.2.2</version>
</dependency>

2) Kemudian gunakan tipenya di entitas Anda, misalnya:

@Data
@NoArgsConstructor
@Entity
@Table(name = "parents")
@TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)
public class Parent implements Serializable {

    @Id
    @GeneratedValue(strategy = SEQUENCE)
    private Integer id;

    @Column(length = 32, nullable = false)
    private String name;

    @Type(type = "jsonb")
    @Column(columnDefinition = "jsonb")
    private List<Child> children;

    @Type(type = "jsonb")
    @Column(columnDefinition = "jsonb")
    private Bio bio;

    public Parent(String name, List children, Bio bio) {
        this.name = name;
        this.children = children;
        this.bio = bio;
    }
}

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Child implements Serializable {
    private String name;
}

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Bio implements Serializable {
    private String text;
}

Kemudian Anda akan dapat menggunakan, misalnya, JpaRepository sederhana untuk bekerja dengan objek Anda:

public interface ParentRepo extends JpaRepository<Parent, Integer> {
}
parentRepo.save(new Parent(
                     "parent1", 
                     asList(new Child("child1"), new Child("child2")), 
                     new Bio("bio1")
                )
);
Parent result = parentRepo.findById(1);
List<Child> children = result.getChildren();
Bio bio = result.getBio();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak dapat terhubung ke Postgres DB karena jenis otentikasi 10 tidak didukung

  2. Tentang kegunaan indeks ekspresi

  3. Mendapatkan hasil yang diketik dari SQL mentah ActiveRecord

  4. Peningkatan otomatis pada kunci primer parsial dengan Entity Framework Core

  5. Cara Menampilkan Nilai Null Saat Menjalankan Kueri di psql (PostgreSQL)