Hibernate を使用して PostgreSQL 配列を Java 配列にマップするにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-25 02:49:30
オリジナル
593 人が閲覧しました

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

Hibernate を使用した PostgreSQL 配列のマッピング

問題が発生しました

Hibernate を使用して PostgreSQL の数値配列列を Java の数値配列フィールドにマップしようとすると、例外が発生する可能性があります。

解決策

この問題を解決するには、次の手順に従います。

1. Maven 依存関係の追加

プロジェクトの pom.xml ファイルに、次の Hibernate Types Maven 依存関係を追加します。

<code class="xml"><dependency>
    <groupId>com.vladmihalcea</groupId>
    <artifactId>hibernate-types-52</artifactId>
    <version>${hibernate-types.version}</version>
</dependency></code>
ログイン後にコピー

2. Hibernate タイプの構成

Hibernate 構成で、次の TypeDefs を追加して Hibernate タイプを有効にします:

<code class="java">@TypeDefs({
    @TypeDef(
        name = "string-array",
        typeClass = StringArrayType.class
    ),
    @TypeDef(
        name = "int-array",
        typeClass = IntArrayType.class
    )
})</code>
ログイン後にコピー

3. Hibernate 型の定義 (オプション)

StringArrayType クラスと IntArrayType クラスが定義されていない場合は、それらをスーパークラスに含めることができます:

<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.エンティティのマッピング

マッピングの例:

<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>
ログイン後にコピー

クエリの例

<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>
ログイン後にコピー

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!