> Java > java지도 시간 > Hibernate JPA에서 ID가 아닌 열에 대한 데이터베이스 시퀀스를 어떻게 생성할 수 있습니까?

Hibernate JPA에서 ID가 아닌 열에 대한 데이터베이스 시퀀스를 어떻게 생성할 수 있습니까?

Linda Hamilton
풀어 주다: 2024-11-30 07:03:19
원래의
831명이 탐색했습니다.

How Can I Generate Database Sequences for Non-ID Columns in Hibernate JPA?

Hibernate JPA에서 ID가 아닌 열에 대한 데이터베이스 시퀀스 사용

JPA 공급자로서 Hibernate를 사용하는 경우 다음과 같은 요구 사항이 발생할 수 있습니다. 식별자의 일부가 아닌 열에 대한 값을 생성합니다. 불행하게도 기본 키 자동 증가에 일반적으로 사용되는 @GeneratedValue 주석은 이 시나리오에 적용되지 않습니다.

먼저, Hibernate/JPA는 ID가 아닌 속성에 대한 값을 자동으로 생성하지 않는다는 점을 이해하는 것이 중요합니다. @GeneratedValue 주석은 기본 키 생성을 관리하는 데에만 사용됩니다. 대신 데이터베이스 생성 값이 필요합니다.

이 제한을 극복하려면 "대리 키 엔터티"라고 알려진 생성된 식별자를 사용하여 별도의 엔터티를 생성하는 것이 좋습니다. 문제의 Non-ID 열은 OneToOne 관계를 사용하여 이 대리 엔터티와 연결될 수 있습니다.

구현 예:

// Surrogate Key Entity
@Entity
public class SurrogateEntity {
  @Id
  @GeneratedValue(...)
  private Long number;
}

// Main Entity
@Entity
public class MyEntity {
  @Id
  private Long id;

  @OneToOne(...)
  private SurrogateEntity myVal;
}
로그인 후 복사

이 접근 방식을 사용하면 값 myVal 속성은 새로운 MyEntity 인스턴스 생성 시 데이터베이스에 의해 생성됩니다. 이 해결 방법을 사용하면 ID가 아닌 열에 대해 Hibernate의 데이터베이스 생성 값 처리 기능을 활용할 수 있습니다.

위 내용은 Hibernate JPA에서 ID가 아닌 열에 대한 데이터베이스 시퀀스를 어떻게 생성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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