> Java > java지도 시간 > 본문

Spring을 사용하여 Hibernate 4에서 주석과의 관계를 정의하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-04 02:21:01
원래의
291명이 탐색했습니다.

How to Define Relationships with Annotations in Hibernate 4 using Spring?

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

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