PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

स्प्रिंगबूट + जेपीए का उपयोग करके PostgreSQL jsonb को कैसे स्टोर करें?

<ब्लॉककोट>

कोशिश की लेकिन कुछ समझ नहीं आया!

jsonb . के साथ पूरी तरह से काम करने के लिए स्प्रिंग डेटा जेपीए . में (हाइबरनेट) प्रोजेक्ट व्लाद मिहालसिया के हाइबरनेट-प्रकार के लिब के साथ आपको बस निम्नलिखित करना चाहिए:

1) इस परिवाद को अपने प्रोजेक्ट में जोड़ें:

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

2) फिर अपनी संस्थाओं में इसके प्रकारों का उपयोग करें, उदाहरण के लिए:

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

तब आप उपयोग करने में सक्षम होंगे, उदाहरण के लिए, एक साधारण JpaRepository अपनी वस्तुओं के साथ काम करने के लिए:

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. Google क्लाउड (GCP) पर PostgreSQL बैकअप संग्रहीत करने के लिए युक्तियाँ

  2. PostgreSQL में EXCLUDE के साथ आसन्न/अतिव्यापी प्रविष्टियों को रोकना

  3. SQL, OID को पोस्टग्रेज करता है, वे क्या हैं और वे क्यों उपयोगी हैं?

  4. PostgreSQL में मेरी तालिका पर अपेक्षा से अधिक चुनें DISTINCT धीमा है

  5. IRI कार्यक्षेत्र में PostgreSQL से कनेक्ट करना