ホームページ  >  記事  >  Java  >  Hibernate を使用して PostgreSQL 配列を Java 配列にマップする方法

Hibernate を使用して PostgreSQL 配列を Java 配列にマップする方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-25 00:31:02449ブラウズ

How to Map PostgreSQL Arrays to Java Arrays Using Hibernate?

Hibernate を使用した PostgreSQL 配列から Java 配列へのマッピング

Hibernate を介して PostgreSQL 数値配列を Java の数値配列にマッピングしようとすると、例外が発生する可能性があります。これは、次の手順に従って解決できます。

Maven 依存関係

プロジェクトの pom.xml 構成ファイルに次の依存関係を追加します:

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

Hibernate Types

配列列のカスタム Hibernate タイプを定義します:

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

エンティティ マッピング

これらのカスタム タイプを使用してエンティティ フィールドを PostgreSQL 配列列にマッピングします:

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

配列値を持つエンティティを挿入すると、Hibernate は次のような SQL ステートメントを生成します:

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

以上がHibernate を使用して PostgreSQL 配列を Java 配列にマップする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。