Spring을 사용하여 Hibernate 4에서 주석으로 관계 정의
제공된 클래스에 대해 Hibernate 4에서 주석을 사용하여 다양한 유형의 관계를 구현하려면 Foo Bar, 세부 사항을 자세히 살펴보겠습니다.
일대다 단방향 관계:
@OneToMany 주석과 List< 바> 재산. Bar 클래스를 변경하지 않고 그대로 둡니다. 이는 Foo가 연관된 여러 Bar 객체를 가질 수 있지만 Bar가 Foo를 다시 참조할 수 없는 일대다 관계를 설정합니다.
양방향 일대다 관계(Foo.class에서 관리) ):
Foo.class에서 cascade = CascadeType.ALL과 함께 @OneToOne 주석을 사용합니다. 조인에 사용해야 하는 Bar.class의 열을 지정하는 @JoinColumn 주석을 추가합니다. Bar.class의 경우 @OneToOne 주석을 사용하고 mappedBy = "bar"를 지정하여 관계가 Foo.class에 의해 관리됨을 나타냅니다.
User-를 사용한 일대다 단방향 관계 관리되는 조인 테이블:
@JoinTable 주석과 함께 @OneToMany 주석을 사용하여 별도의 조인 테이블을 지정합니다. 양쪽에 @JoinColumn 주석을 사용하여 조인 열을 정의합니다. 필요한 경우 추가 클래스를 사용하여 조인 테이블을 나타냅니다.
외래 키 매핑을 사용한 양방향 일대다 관계:
Foo.class에서, 관계를 매핑하려면 @OneToMany(mappedBy = "bar")를 사용하세요. Bar.class에서는 @JoinColumn 주석과 함께 @ManyToOne(cascade = { CascadeTyep.PERSIST, CascadeType.MERGE, CascadeType.REFRESH })을 사용합니다.
Hibernate를 사용하는 양방향 다대다 -관리형 조인 테이블:
Foo.class와 Bar.class 모두에서 @ManyToMany를 사용하고 조인 테이블에 @JoinTable 주석을 사용하여 조인 열을 지정합니다.
사용자 관리 조인 테이블 개체를 사용한 양방향 다대다:
단방향 일대다 예와 유사하게 @JoinTable 주석과 함께 @OneToMany를 사용합니다. 조인 테이블을 나타내는 별도의 클래스를 생성하고 @ManyToOne을 사용하여 Foo.class와 Bar.class 모두에 관계를 매핑합니다.
가져오기 유형 결정:
fetchType 사용 .LAZY는 관련 컬렉션에 액세스할 때까지 로드를 지연합니다. 컬렉션을 즉시 로드하려면 fetchType.EAGER를 사용하세요. 하지만 성능에 영향을 미칠 수 있다는 점에 유의하세요. 특정 사용 사례에 대해 느리게 로드된 컬렉션을 수동으로 초기화하려면 서비스 클래스에서 Hibernate.initialize()를 사용하는 것을 고려하세요.
계단식 방향 결정:
@Cascade 주석을 사용하여 계단식 옵션을 지정합니다. 일반적으로 캐스케이드는 소유 관계의 방향으로 변경됩니다. 애플리케이션 컨텍스트에서 의미가 없는 경우 하위 항목에서 상위 항목으로의 계단식 업데이트 또는 삭제를 피하세요.
고아 제거:
@OneToMany 주석에 orphanRemoval = true를 설정하면 Hibernate가 고아 객체(즉, 다른 상위 객체와 연관되지 않은 객체)가 제거될 때 자동으로 삭제하도록 합니다. 상위 개체의 컬렉션에서 가져옵니다.
위 내용은 Spring을 사용하여 Hibernate 4에서 주석과의 관계를 정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!