Heim  >  Artikel  >  Java  >  Wie kann ich mit Hibernate PostgreSQL-Arrays Java-Arrays zuordnen?

Wie kann ich mit Hibernate PostgreSQL-Arrays Java-Arrays zuordnen?

Barbara Streisand
Barbara StreisandOriginal
2024-10-25 02:49:30592Durchsuche

How can I Map PostgreSQL Arrays to Java Arrays with Hibernate?

PostgreSQL-Arrays mit Hibernate zuordnen

Problem aufgetreten

Beim Versuch, eine numerische Array-Spalte in PostgreSQL mithilfe von Hibernate einem numerischen Array-Feld in Java zuzuordnen , kann eine Ausnahme auftreten.

Lösung

Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus:

1. Maven-Abhängigkeit hinzufügen

Fügen Sie in der pom.xml-Datei Ihres Projekts die folgende Maven-Abhängigkeit für Ruhezustandstypen hinzu:

<code class="xml"><dependency>
    <groupId>com.vladmihalcea</groupId>
    <artifactId>hibernate-types-52</artifactId>
    <version>${hibernate-types.version}</version>
</dependency></code>

2. Konfigurieren Sie Ruhezustandstypen

Aktivieren Sie in Ihrer Ruhezustandskonfiguration Ruhezustandstypen, indem Sie die folgenden TypeDefs hinzufügen:

<code class="java">@TypeDefs({
    @TypeDef(
        name = "string-array",
        typeClass = StringArrayType.class
    ),
    @TypeDef(
        name = "int-array",
        typeClass = IntArrayType.class
    )
})</code>

3. Definieren Sie Ruhezustandstypen (optional)

Wenn die Klassen StringArrayType und IntArrayType nicht definiert sind, können Sie sie in eine Superklasse einschließen:

<code class="java">@MappedSuperclass
public class BaseEntity {

    @Id
    private Long id;

    @Type(type = "string-array")
    private String[] stringArray;

    @Type(type = "int-array")
    private int[] intArray;

    // Getters and setters omitted for brevity
}</code>

4. Ordnen Sie Ihre Entität zu

Beispielzuordnung:

<code class="java">@Entity(name = "Event")
@Table(name = "event")
public class Event extends BaseEntity {

    @Type(type = "string-array")
    private String[] sensorNames;

    @Type(type = "int-array")
    private int[] sensorValues;

    // Getters and setters omitted for brevity
}</code>

Beispielabfrage

<code class="java">Event event = entityManager.find(Event.class, 1L);

// Accessing the mapped array properties
for (String sensorName : event.getSensorNames()) {
    System.out.println(sensorName);
}

for (int sensorValue : event.getSensorValues()) {
    System.out.println(sensorValue);
}</code>

Das obige ist der detaillierte Inhalt vonWie kann ich mit Hibernate PostgreSQL-Arrays Java-Arrays zuordnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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