PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

làm thế nào để lưu trữ PostgreSQL jsonb bằng SpringBoot + JPA?

Đã thử điều này nhưng không hiểu gì!

Để hoạt động hoàn toàn với jsonb trong Spring Data JPA (Hibernate) với lib kiểu ngủ đông của Vlad Mihalcea, bạn chỉ cần thực hiện như sau:

1) Thêm lib này vào dự án của bạn:

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

2) Sau đó, sử dụng các loại của nó trong các thực thể của bạn, ví dụ:

@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;
}

Sau đó, bạn sẽ có thể sử dụng, chẳng hạn như một JpaRepository đơn giản để làm việc với các đối tượng của bạn:

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. Cách thực hiện thao tác cập nhật trên các cột kiểu JSONB trong Postgres 9.4

  2. Cách chuyển đổi Dấu thời gian Unix thành Giá trị Ngày / Giờ trong PostgreSQL

  3. Chuyển tên bảng làm tham số trong psycopg2

  4. Xuất cơ sở dữ liệu PostgreSQL với phpPgAdmin

  5. PostgreSQL chuyển đổi sai từ dấu thời gian không có múi giờ sang dấu thời gian có múi giờ