Maison > Java > javaDidacticiel > Comment mapper des tableaux PostgreSQL aux tableaux Java avec Hibernate : un guide du mappage de tableaux numériques

Comment mapper des tableaux PostgreSQL aux tableaux Java avec Hibernate : un guide du mappage de tableaux numériques

Mary-Kate Olsen
Libérer: 2024-10-25 09:16:28
original
308 Les gens l'ont consulté

How to Map PostgreSQL Arrays to Java Arrays with Hibernate: A Guide to Numeric Array Mapping

Mappage de tableaux PostgreSQL avec Hibernate

Introduction

Le mappage de tableaux PostgreSQL vers des tableaux Java via Hibernate peut être difficile. Cet article aborde les difficultés courantes rencontrées lors de la tentative de mappage spécifique de tableaux numériques.

Configuration des dépendances

La configuration des dépendances Maven Hibernate Types suivantes est cruciale :

<code class="xml"><dependency>
    <groupId>com.vladmihalcea</groupId>
    <artifactId>hibernate-types-52</artifactId>
    <version>${hibernate-types.version}</version>
</dependency></code>
Copier après la connexion

Personnalisée Définitions de types

Des définitions de types personnalisés, telles que les suivantes, sont requises pour mapper les tableaux PostgreSQL :

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

Les classes StringArrayType et IntArrayType sont fournies par le projet Hibernate Types.

Exemple de mappage

En suivant l'exemple de schéma SQL :

<code class="sql">CREATE TABLE sal_emp (name text, pay_by_quarter integer[]);</code>
Copier après la connexion

Une classe Java correspondante ressemblerait à ceci :

<code class="java">@Entity(name = "SalEmp")
@Table(name = "sal_emp")
public class SalEmp implements Serializable {

    private String name;

    @Type(type = "int-array")
    @Column(name = "pay_by_quarter")
    private Integer[] payByQuarter;

    // Getters and setters omitted for brevity
}</code>
Copier après la connexion

Insertion d'entités

Lors de l'insertion d'entités telles que :

<code class="java">SalEmp nullEmp = new SalEmp();
nullEmp.setName("Null Emp");
entityManager.persist(nullEmp);

SalEmp salEmp = new SalEmp();
salEmp.setName("Regular Emp");
salEmp.setPayByQuarter(new Integer[] {1, 2, 3});
entityManager.persist(salEmp);</code>
Copier après la connexion

Hibernate générera des instructions SQL appropriées pour l'insertion de tableaux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal