Heim > Java > javaLernprogramm > Hauptteil

Wie ordne ich JSON-Spalten in PostgreSQL Hibernate-Entitätseigenschaften zu?

DDD
Freigeben: 2024-10-26 06:38:30
Original
976 Leute haben es durchsucht

How to Map JSON Columns in PostgreSQL to Hibernate Entity Properties?

Zuordnen von JSON-Spalten in PostgreSQL zu Hibernate-Entitätseigenschaften

Problem: Zuordnen von JSON-Spalten zu Hibernate-Entitäten

Zuordnen von in PostgreSQL gespeicherten JSON-Daten zu Hibernate-Entitäten Eigenschaften können eine Herausforderung sein. Der Versuch, die Spalte einem String-Feld in der Entität zuzuordnen, löst beim Speichern der Entität eine Ausnahme aus, die darauf hinweist, dass die Zeichenvariation (String) nicht in JSON konvertiert werden kann.

Lösung: Definieren eines benutzerdefinierten Benutzertyps

Um JSON-Spalten effektiv Hibernate-Entitäten zuzuordnen, muss ein benutzerdefinierter Benutzertyp definiert werden. Dieser Typ übersetzt zwischen String-Werten und dem in der Datenbank verwendeten JSON-Datentyp.

1. Erweitern des PostgreSQL-Dialekts:

Erweitern Sie den Standard-PostgreSQL-Dialekt, um den Typ „json“ zu erkennen:

<code class="java">public class JsonPostgreSQLDialect extends PostgreSQL9Dialect {

    public JsonPostgreSQLDialect() {
        super();
        this.registerColumnType(Types.JAVA_OBJECT, "json");
    }
}</code>
Nach dem Login kopieren

2. Implementieren des Benutzertyps:

Implementieren Sie die Schnittstelle org.hibernate.usertype.UserType, um die benutzerdefinierte Zuordnung zu definieren:

<code class="java">public class StringJsonUserType implements UserType {

    // ... implementation of required methods ...
}</code>
Nach dem Login kopieren

3. Kommentieren der Entität und Eigenschaft:

Fügen Sie die folgenden Anmerkungen zur Entitätsklassendeklaration und der JSON-zugeordneten Eigenschaft hinzu:

<code class="java">@TypeDefs({@TypeDef(name = "StringJsonObject", typeClass = StringJsonUserType.class)})
...
@Type(type = "StringJsonObject")
public String getJsonPayload() { ... }</code>
Nach dem Login kopieren

Beispielprojekt:

Eine vollständige Beispielimplementierung finden Sie im GitHub-Projekt: https://github.com/timfulmer/hibernate-postgres-jsontype

Das obige ist der detaillierte Inhalt vonWie ordne ich JSON-Spalten in PostgreSQL Hibernate-Entitätseigenschaften zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!