Hibernate를 사용하여 PostgreSQL의 숫자 배열 열을 Java의 숫자 배열 필드에 매핑하려고 할 때 , 예외가 발생할 수 있습니다.
이 문제를 해결하려면 다음 단계를 따르세요.
1. Maven 종속성 추가
프로젝트의 pom.xml 파일에 다음 Hibernate 유형 Maven 종속성을 추가합니다:
<code class="xml"><dependency> <groupId>com.vladmihalcea</groupId> <artifactId>hibernate-types-52</artifactId> <version>${hibernate-types.version}</version> </dependency></code>
2. Hibernate 유형 구성
Hibernate 구성에서 다음 TypeDef를 추가하여 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!