학습 (3 개) --- 관계 스프링 데이터 JPA 일반적인 코멘트

1 JoinColumn @ 요소 또는 지정 연관된 엔티티의 집합을 연결 지주. 
속성 이름 :
외래 키 열 이름, 테이블은 어떤 문맥에 따라 달라집니다.
연결이 외국 하나를 사용하는 키 또는 많은 매핑 전략의 경우, 외래 키 열이나 단체는 소스 테이블에 포함 할 수있다.
연결이 일대 외래 키 매핑 방도 매핑 편도 인 경우, 외래 키는 대상 개체의 테이블에 있습니다.
커플 링은 일대 매핑, 또는의 사용을 지시하는 경우 하나 이상의 테이블이 많은 매핑, 조인 된 테이블의 다음 외래 키에 / 많은 사람들이 많은 양방향 일에 참여.

결합 요소는 컬렉션 외래 키 수집 테이블에 결합되는 경우.

기본값 (단 하나의 컬럼에 연결되어 사용) 엔티티 속성 또는 필드 이름 + "_"+ 이름으로 참조 기본 키 참조.

등록 referencedColumnName로 :
참조 된 컬럼의 외래 키 열 이름.
매핑 관계는 본원에 기재된 경우 이외의 실체와 함께 사용하는 경우, 칼럼의 위치는 목표 엔티티의 테이블 참조.
있는 단방향 OneToMany 외래 키 매핑 테이블 컬럼 참조 소스 개체와 함께 사용하는 경우.
@JoinTable에서 사용될 때, 주요 열 테이블 참조 소유하는 엔티티의 엔티티 위치 또는 연결이 정의 된 경우, 역 접속의 일부인 역 엔티티에 사용된다.

사용 CollectionTable 매핑으로, 열은 개체의 집합에있는 테이블에서 참조.

기본값 (단일 가입 컬럼을 사용하여) 동일한 이름의 기본 키 열 참조 테이블.

독특한 특성 : 단일 여부, 거짓 기본.
부동산 널 (NULL) : null의 경우, 사실 기본 수 있습니다.
속성 삽입 가능한 : 함께 새를 수행 할 것인지, 사실 기본.
갱신 등록 : 수정과 함께 수행 할 것인지, 사실 기본.
등록 columnDefinition : DDL의 SQL 조각.
: 테이블 속성
열을 포함하는 테이블의 이름입니다. 어떤 테이블이 마스터 테이블에 나열되지 않은 경우 해당하는 개체를 가정한다.
기본값 :
외래 키 조인의 이름은 소스 엔티티, 하나 또는 여러 매핑 전략을 사용하는 것 또는 테이블에 내장 될 수있는 경우.
당신은 편도 OneToMany 맵핑의 사용에 대한 외래 키 매핑 전략, 또는 대상 엔티티의 테이블 이름을 결합합니다.
많은 매핑, 또는 하나 양방향 테이블의 사용에 대한 많은 가입에 대한 결합 인 경우 많은-에 / 일대 매핑 테이블의 이름 합류했다.
조인이 것은 요소의 모음, 테이블의 컬렉션의 이름입니다.

속성은 외래 키 : 테이블을 생성 할 때 지정된 컨트롤 또는 외래 키 제약 조건을 생성합니다. 이 요소를 지정하지 않으면, 기본 키 외교 정책 지속성 공급자가 적용됩니다. 일반 기본.



2, @의 JoinColumns 외래 키지도 지정된 조합. 코멘트 댓글 JoinColumn에게 같은 관계를 그룹화됩니다.
JoinColumns 주석을 사용하고 때 이름이 이러한 각 요소 referencedColumnName로 JoinColumn 코멘트에 지정해야합니다.


3, 관련 @ 관절 식지도를 지정합니다. 협회를 위해 파티를 소유하고있다.
일반적으로 다 대다 한 방식으로 사용 및 일대 다 매핑을 관련.
또한 사용할 수있다 양방향 대일 / 원 - 투 - 많은 편도 대일, 단방향 또는 양방향 일대일.
당신이 주석 @JoinTable하지 않는 경우, 연결 테이블의 주석 요소의 기본 이름은 (측면을 가지고 우선한다) 메인 테이블과 연관된 밑줄 테이블 이름과 결합된다.
속성 이름 : 연결 테이블 이름, 밑줄로 구분 된 호스트 엔티티 테이블을 연결 관련된 두 가지의 기본 이름.
등록 카탈로그 : 디렉토리 테이블. 기본값은 기본 디렉토리입니다. 일반 기본.
테이블의 스키마 스키마 속성. 기본값은 사용자의 기본 스키마입니다. 일반 기본.
등록 joinColumns : 외래 키는 호스트 개체와 관련된 참조 테이블이 테이블을 가입 할 수 있습니다.
등록 inverseJoinColumns : 외래 키 컬럼 연결 테이블, 그것은 호스트 개체와 관련된 참조 테이블이 없습니다. (즉, 대향면).
속성 외래 키 : 제어 테이블이 소자에 대응 joinColumns 발생시 특정 외래 키 제약이나 열을 발생. 일반 기본.
속성 inverseForeignKey : 열 외래 키 제약 세대 발생 표 inverseJoinColumns 지정된 또는 제어 요소들에 대응. 일반 기본.
등록 uniqueConstraints는 : 테이블에 고유 제한 조건을 넣어. 만 테이블이 생성 된 경우에만이 방법을 사용합니다. 추가적인 제약 조건없이 기본. 일반 기본.
인덱스 속성 : 인덱스 테이블을. 만 테이블이 생성 된 경우에만이 방법을 사용합니다. 일반 기본.


도 4는 하나의 값을 지정 @ OneToOne 엔티티의 다양성과 서로 관련.
보통은 일반적으로 객체 참조 형에서 유추 할 수있는 명시 적, 관련 대상 기관을 지정할 필요가 없습니다.
관계가 양방향 경우, 비 당사자는 필드 또는 재산의 소유자 사이의 관계를 지정하는 OneToOne 코멘트 mappedBy 요소가 있어야합니다.

등록 targetEntity : 클래스와 관련된 대상 엔티티. 기본 유형 필드 또는 속성입니다.
등록 캐스케이드 : 캐스케이드 운영 전략. 기본적으로 어떤 작업을 계단식 없습니다.
속성 가져 오기 : 데이터 수집 모드, 기본 EAGER, 즉시 액세스 할 수 있습니다.
옵션 속성 : 빈 허용할지 여부, 사실 기본.
등록 mappedBy는 : 필드의 관계를 가지고있다. 관련 결국 지정이 요소에만 반 (비 소유자). 누구 관계를 유지합니다.
mappedBy는 @ JoinColumn, @ 관절 식을 동시에 할 수 없습니다.
mappedBy 다른 개체의 이름을 의미 속성은
속성을 orphanRemoval : 구성만큼 삭제하고 CascadeType.REMOVE 효과 계단식 것은 계단식 삭제 중 하나가 될 것인지 여부. 거짓 기본.

함께 사용 @JoinColumn @OneToOne는 각 특정 상황과 양방향 연관과 연관 될 수있다. 하나는 외래 키를 관리하는 데 어느 쪽 결정 양방향은 일반적으로 파티를 관리하는 데 사용됩니다.


5 @ OneToMany 많은 협회 다치 다수가 지정 갖는다.
제네릭 형식 지정된 요소를 정의하기 위해 설정 한 경우 연결 대상 법인의 유형을 지정할 필요가 없습니다되고, 그렇지 않으면, 대상 엔티티 클래스를 지정해야합니다.
관계가 양방향 경우에는 관계 필드 또는 부동산 소유주 엔티티 관계를 지정하기 위해 mappedBy 요소를 사용해야합니다.
등록 targetEntity : 클래스와 관련된 대상 엔티티. 오직 정의의 자바 일반적인 세트를 사용, 선택 사항입니다. 그것은 달리 지정해야합니다. 일반적인 정의, 매개 변수 유형의 기본 설정을 사용하는 경우.
등록 캐스케이드 : 캐스케이드 운영 전략. 기본적으로 어떤 작업을 계단식 없습니다.
속성 가져 오기 : 데이터 수집 모드, 기본 LAZY, 게으른 로딩을. (하나 하나, 많은 다른)
속성은 mappedBy : 전계의 관계를 갖는다. 관계가 단방향 경우를 제외하고, 그렇지 않으면이 필요합니다.
등록 orphanRemoval : 한 구성이 계단식 삭제 중 하나가 될 것으로 삭제하고, CascadeType.REMOVE 효과를 계단식 여부. 거짓 기본.
데이터베이스에서 제거하면 컬렉션의 지정된 컬렉션의 요소는 제거.

참고 : @OneToMany 혼자, @JoinColumn 사용하지 경우, 단일 많은 관계를 구축 관계를 유지하기 위해 추가 테이블을 생성합니다. 목표 테이블 @JoinColumn 외래 키와 함께 사용하는 경우 발생한다.


다른 하나는 다수 대 다수 엔티티 클래스와 연관된 값을 갖는 지정 6 ManyToOne의 @.
보통은 일반적으로 객체 참조 형에서 유추 할 수있는 명시 적으로 대상 법인을 지정할 필요가 없습니다.
관계가 양방향 경우, 최종 엔티티 OneToMany 비 소유자는 관계 필드 또는 부동산 소유주 엔티티 관계를 지정하기 위해 mappedBy 요소를 사용해야합니다.
등록 targetEntity : 클래스와 관련된 대상 엔티티. 기본 유형 필드 또는 속성입니다.
등록 캐스케이드 : 캐스케이드 운영 전략. 기본적으로 어떤 작업을 계단식 없습니다.
속성 가져 오기 : 데이터 수집 모드, 기본 EAGER, 즉시 액세스 할 수 있습니다. (그리고 많은 다른)
선택적 특성 : 빈 허용 여부, 사실 기본.


일반적으로 관련 문의, 주문 및 @OneToMany 함께 사용하는 경우 7,있는 OrderBy @ 지정합니다.
이 필드는 다음과 같은 형식으로 정렬합니다
* [orderby_item,] orderby_list :: = orderby_item
| orderby_item :: = [property_or_field_name] [DESC ASC]

당신이 오름차순 또는 내림차순을 지정하지 않으면, 상승은 기본적으로 사용됩니다.
엔터티 요소를 주문하지 않는 경우, 기본 키를 기본.
현장에서 정렬 할 수있는 엔티티와 관련된 해당 속성에 해당하는, 우리는 비교 연산을 지원해야합니다.
사용할 수 있습니다. 내장 필드를 참조하는 속성.


8 ManyToMany 관련성 지정된 값이 @가-많은 다양성.
각각의 두 양태 일대 당사자 아닌 자와의 관계, 또는 반대면을 갖는다. 보통 사이드 테이블을 커플 링하는 지정됩니다.
협회는 양방향 경우, 당사자는의 소유자로 지정할 수 있습니다. 비 당사자는 필드 또는 재산의 소유자 사이의 관계를 지정하는 ManyToMany 주석 mappedBy 요소가 있어야합니다.
등록 targetEntity : 클래스와 관련된 대상 엔티티. 오직 정의의 자바 일반적인 세트를 사용, 선택 사항입니다. 그것은 달리 지정해야합니다. 일반적인 정의, 매개 변수 유형의 기본 설정을 사용하는 경우.
등록 캐스케이드 : 캐스케이드 운영 전략. 기본적으로 어떤 작업을 계단식 없습니다.
속성 가져 오기 : 데이터 수집 모드, 기본 LAZY, 게으른 로딩을.
등록 mappedBy는 : 필드의 관계를 가지고있다. 관계가 단방향 경우를 제외하고, 그렇지 않으면이 필요합니다.

일반 @ManyToMany @JoinTable와 함께 사용된다.
또한, 하나 개의 관계에 여러 개의으로 분할 @ManyToMany.

소스 예를 들어 주소 : HTTPS : //github.com/caofanqi/study-spring-data-jpa

추천

출처www.cnblogs.com/caofanqi/p/11802793.html