Rumah  >  Artikel  >  Java  >  Bagaimana untuk Memetakan Array PostgreSQL ke Array Java Menggunakan Hibernate?

Bagaimana untuk Memetakan Array PostgreSQL ke Array Java Menggunakan Hibernate?

Linda Hamilton
Linda Hamiltonasal
2024-10-25 00:31:02449semak imbas

How to Map PostgreSQL Arrays to Java Arrays Using Hibernate?

Memetakan Tatasusunan PostgreSQL ke Tatasusunan Java menggunakan Hibernate

Apabila cuba memetakan tatasusunan angka PostgreSQL kepada tatasusunan angka di Jawa melalui Hibernate, anda mungkin menghadapi pengecualian. Ini boleh diselesaikan dengan mengikuti langkah berikut:

Ketergantungan Maven

Tambahkan kebergantungan berikut pada fail konfigurasi pom.xml projek anda:

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

Jenis Hibernate

Tentukan jenis Hibernate tersuai untuk lajur tatasusunan:

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

Pemetaan Entiti

Petakan medan entiti ke lajur tatasusunan PostgreSQL menggunakan jenis tersuai ini:

<code class="java">@Type( type = "string-array" )
@Column(
    name = "sensor_names", 
    columnDefinition = "text[]"
)
private String[] sensorNames;

@Type( type = "int-array" )
@Column(
    name = "sensor_values", 
    columnDefinition = "integer[]"
)
private int[] sensorValues;</code>

Contoh

Apabila memasukkan entiti dengan nilai tatasusunan, Hibernate akan menjana pernyataan SQL yang serupa dengan yang berikut:

<code class="sql">INSERT INTO event (
    version, 
    sensor_names, 
    sensor_values, 
    id
) 
VALUES (
    0, 
    {&quot;Temperature&quot;,&quot;Pressure&quot;}, 
    {&quot;12&quot;,&quot;756&quot;}, 
    1
)</code>

Atas ialah kandungan terperinci Bagaimana untuk Memetakan Array PostgreSQL ke Array Java Menggunakan 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