>Java >java지도 시간 >Hibernate를 사용하여 PostgreSQL 배열을 Java 배열에 매핑하는 방법: 숫자 배열 매핑 가이드

Hibernate를 사용하여 PostgreSQL 배열을 Java 배열에 매핑하는 방법: 숫자 배열 매핑 가이드

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-25 09:16:28319검색

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

Hibernate를 통해 PostgreSQL 어레이 매핑

소개

Hibernate를 통해 PostgreSQL 어레이를 Java 어레이에 매핑하는 것은 어려울 수 있습니다. 이 문서에서는 숫자 배열을 구체적으로 매핑하려고 할 때 직면하는 일반적인 어려움을 다룹니다.

종속성 구성

다음 Hibernate 유형 Maven 종속성을 설정하는 것이 중요합니다.

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

사용자 정의 유형 정의

PostgreSQL 배열을 매핑하려면 다음과 같은 사용자 정의 유형 정의가 필요합니다.

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

StringArrayType 및 IntArrayType 클래스는 Hibernate Types 프로젝트에서 제공됩니다.

예제 매핑

예제 SQL 스키마를 따르면:

<code class="sql">CREATE TABLE sal_emp (name text, pay_by_quarter integer[]);</code>

해당 Java 클래스는 다음과 같습니다.

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

엔티티 삽입

다음과 같은 엔터티를 삽입할 때:

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

Hibernate는 배열 삽입을 위해 적절한 SQL 문을 생성합니다.

위 내용은 Hibernate를 사용하여 PostgreSQL 배열을 Java 배열에 매핑하는 방법: 숫자 배열 매핑 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.