jpa entity 예제

구성 요소 형식을 사용하여 식별자를 나타내고 엔터티의 속성으로 매핑한 다음 속성에 @EmbeddedId 개의 추가를 추가합니다. 구성 요소 유형은 Serializ가능해야 합니다. @Any 지정은 여러 테이블의 클래스에 대한 다형성 연결을 정의합니다. 이 매핑 유형에는 항상 두 개 이상의 열이 필요합니다. 첫 번째 열에는 연결된 엔터티의 형식이 있습니다. 나머지 열에는 식별자가 있습니다. 이러한 종류의 연결에 대해 외래 키 제약 조건을 지정하는 것은 불가능하므로 일반적인 매핑(다형성) 연결방식으로는 의미가 없습니다. 매우 특별한 경우(예: 감사 로그, 사용자 세션 데이터 등)에서만 사용해야 합니다. 다음 예제에서는 관련 엔터티가 명시적 외래 키 열을 통해 연결됩니다. 필드 또는 속성은 다음 Java 언어 유형이어야 합니다.

@OneToMany 컬렉션에서 엔터티가 제거되거나 @OneToOne 연결에서 관련 엔터티가 참조되는 경우 orphanRemove가 true로 설정된 경우 이 관련 엔터티를 삭제로 표시할 수 있습니다. 어떤 면에서 연관된 엔터티의 수명 주기는 포함 가능한 개체와 마찬가지로 소유 엔터티에 바인딩됩니다. @org.최대 절전 모드.주석.TypeDef 및 @org.hibernate.annotations.TypeDefs를 사용하면 형식 정의를 선언할 수 있습니다. 이러한 주석은 클래스 또는 패키지 수준에 배치할 수 있습니다. 이러한 정의는 클래스 수준에서 정의된 경우에도 세션 팩터리에 대한 전역입니다. 형식이 단일 엔터티에서 사용되는 경우 엔터티 자체에 정의를 배치할 수 있습니다. 그렇지 않으면 패키지 수준에서 정의를 배치하는 것이 좋습니다. 아래 예제에서는 최대 절전 모드 클래스 PhoneNumer의 속성이 발생 하면 사용자 지정 매핑 유형 PhoneNumberType에 지속성 전략을 위임 합니다. 그러나 다른 클래스에 속하는 속성도 @Type 개의 @Type 개의 추가를 명시적으로 사용하여 해당 지속성 전략을 PhoneNumberType에 위임할 수 있습니다. org.hibernate.tuple.Tuplizer 및 하위 인터페이스는 해당 표현의 org.hibernate.EntityMode를 감안할 때 특정 데이터 표현을 관리할 책임이 있습니다. 주어진 데이터 조각을 데이터 구조로 생각하면 tuplizer는 이러한 데이터 구조를 만드는 방법과 값을 추출하고 이러한 데이터 구조에 값을 삽입하는 방법을 아는 것입니다. 예를 들어 POJO 엔터티 모드의 경우 correpsonding tuplizer는 생성자를 통해 POJO를 만드는 방법과 정의된 속성 접근자를 사용하여 POJO 속성에 액세스하는 방법을 알고 있습니다.

tuplizers의 두 가지 높은 수준의 유형이 있습니다. EntityTuplizers는 엔터티와 관련하여 위에서 언급한 계약을 관리할 책임이 있으며 구성 요소Tuplizers는 구성 요소에 대해 동일한 작업을 수행합니다. 자세한 내용은 최대 절전 모드 참조 설명서를 참조하십시오. 클래스 계층 구조에서 특정 엔터티의 액세스 형식을 재정의할 때 지정된 엔터티가 삭제될 때 데이터베이스에 계단식 삭제를 위임할 수 있습니다. 엔터티 클래스에 대해 너무 많은 상용구 코드를 작성하지 않으려면 Java 클래스의 필드에 적합한 게터, 세터, toString() 및 해시코드() 메서드를 자동으로 생성하는 lombok을 사용할 수 있습니다. @Id 어구를 사용하면 엔터티의 식별자인 속성을 정의할 수 있습니다. 이 속성은 응용 프로그램 자체에 의해 설정되거나 최대 절전 모드(기본 설정)에 의해 생성될 수 있습니다.