Rumah  >  Artikel  >  Java  >  Bagaimanakah saya boleh Memetakan Array PostgreSQL ke Array Java dengan Hibernate?

Bagaimanakah saya boleh Memetakan Array PostgreSQL ke Array Java dengan Hibernate?

Barbara Streisand
Barbara Streisandasal
2024-10-25 02:49:30592semak imbas

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

Memetakan Tatasusunan PostgreSQL dengan Hibernate

Isu yang Ditemui

Apabila cuba memetakan lajur tatasusunan angka dalam PostgreSQL ke medan tatasusunan angka di Jawa menggunakan Hibernate , pengecualian mungkin berlaku.

Penyelesaian

Untuk menyelesaikan isu ini, ikut langkah berikut:

1. Tambah Ketergantungan Maven

Dalam fail pom.xml projek anda, tambahkan kebergantungan Maven Jenis Hibernate berikut:

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

2. Konfigurasikan Jenis Hibernate

Dalam konfigurasi Hibernate anda, dayakan Jenis Hibernate dengan menambah TypeDefs berikut:

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

3. Tentukan Jenis Hibernate (Pilihan)

Jika kelas StringArrayType dan IntArrayType tidak ditakrifkan, anda boleh memasukkannya dalam superclass:

<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. Petakan Entiti Anda

Contoh pemetaan:

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

Contoh Pertanyaan

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

Atas ialah kandungan terperinci Bagaimanakah saya boleh Memetakan Array PostgreSQL ke Array Java dengan Hibernate?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn