> Java > java지도 시간 > `@IdClass` 또는 `@EmbeddedId`를 사용하여 JPA 및 최대 절전 모드로 복합 키를 매핑하는 방법은 무엇입니까?

`@IdClass` 또는 `@EmbeddedId`를 사용하여 JPA 및 최대 절전 모드로 복합 키를 매핑하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-11 04:55:10
원래의
204명이 탐색했습니다.

How to Map Composite Keys with JPA and Hibernate Using `@IdClass` or `@EmbeddedId`?

JPA 및 Hibernate를 사용하여 복합 키 매핑

제공된 SQL 스키마에서 시간 테이블에는 levelStation 및 confPathID로 구성된 복합 기본 키가 있습니다. 전지. JPA 및 Hibernate에서 이러한 유형의 키를 매핑하려면 복합 기본 키를 나타내는 특수 주석이 필요합니다.

IdClass 주석 사용

한 가지 옵션은 @IdClass 주석을 사용하는 복합 키. 클래스에는 기본 키 열뿐만 아니라 getter, setter, equals 및 hashCode 메서드에 해당하는 필드가 있어야 합니다.

public class TimePK implements Serializable {
    private Integer levelStation;
    private Integer confPathID;

    // Getters, setters, equals, hashCode
}
로그인 후 복사

그런 다음 엔터티 클래스에 @IdClass 및 복합 키 개체로 주석이 추가됩니다.

@Entity
@IdClass(TimePK.class)
class Time implements Serializable {
    @Id
    private Integer levelStation;
    @Id
    private Integer confPathID;

    // Other properties
}
로그인 후 복사

EmbeddedId 사용 주석

또는 @EmbeddedId 주석을 사용하여 복합 키를 포함하는 클래스를 정의할 수 있습니다.

@Embeddable
public class TimePK implements Serializable {
    private Integer levelStation;
    private Integer confPathID;

    // Getters, setters, equals, hashCode
}
로그인 후 복사

그런 다음 엔터티 클래스에 @EmbeddedId 및 포함된 복합으로 주석이 추가됩니다. 핵심 개체:

@Entity
class Time implements Serializable {
    @EmbeddedId
    private TimePK timePK;

    // Other properties
}
로그인 후 복사

두 개체의 차이점 IdClass 및 EmbeddedId

@IdClass 및 @EmbeddedId 모두 복합 기본 키 매핑을 허용합니다. 그러나 몇 가지 사소한 차이점이 있습니다.

  • @IdClass는 필드의 고유한 조합이 기본 키를 형성하지만 뚜렷한 의미를 갖지 않음을 지정합니다.
  • @EmbeddedId는 다음을 제안합니다. 복합 키는 그 자체로 의미 있는 엔터티입니다.

@IdClass와 @EmbeddedId 중 선택 애플리케이션의 특정 의미에 따라 다릅니다.

위 내용은 `@IdClass` 또는 `@EmbeddedId`를 사용하여 JPA 및 최대 절전 모드로 복합 키를 매핑하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿