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 중국어 웹사이트의 기타 관련 기사를 참조하세요!