Maison > Java > javaDidacticiel > Comment mapper des tableaux PostgreSQL aux tableaux Java à l'aide d'Hibernate ?

Comment mapper des tableaux PostgreSQL aux tableaux Java à l'aide d'Hibernate ?

Linda Hamilton
Libérer: 2024-10-25 00:31:02
original
627 Les gens l'ont consulté

How to Map PostgreSQL Arrays to Java Arrays Using Hibernate?

Mappage d'un tableau PostgreSQL à un tableau Java à l'aide d'Hibernate

Lorsque vous essayez de mapper un tableau numérique PostgreSQL à un tableau numérique en Java via Hibernate, vous pouvez rencontrer une exception. Cela peut être résolu en suivant ces étapes :

Dépendance Maven

Ajoutez la dépendance suivante au fichier de configuration pom.xml de votre projet :

<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

Types Hibernate

Définissez des types Hibernate personnalisés pour les colonnes du tableau :

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

Mappage d'entités

Mappez les champs d'entité aux colonnes du tableau PostgreSQL à l'aide de ces types personnalisés :

<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>
Copier après la connexion

Exemple

Lors de l'insertion d'entités avec des valeurs de tableau, Hibernate générera des instructions SQL similaires à celles-ci :

<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>
Copier après la connexion

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!

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