Spring을 사용하여 Hibernate 4에서 주석으로 관계 정의
제공된 클래스에 대해 Hibernate 4에서 주석을 사용하여 다양한 유형의 관계를 구현하려면 Foo Bar, 세부 사항을 자세히 살펴보겠습니다.
일대다 단방향 관계:
@OneToMany 주석과 List를 사용하여 Foo 클래스를 구성합니다 속성입니다. 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를 사용하여 양방향 다대다 -managed Join Table:
Foo.class와 Bar.class 모두에서 @ManyToMany를 사용하고 조인 테이블에 @JoinTable 주석을 사용하여 조인 열을 지정합니다.
사용자 관리 조인 테이블 객체를 사용하는 양방향 다대다:
단방향 일대다 예와 유사하게 @JoinTable 주석과 함께 @OneToMany를 사용합니다. @ManyToOne을 사용하여 조인 테이블을 나타내고 Foo.class와 Bar.class 모두에 관계를 매핑하는 별도의 클래스를 만듭니다.
가져오기 유형 결정:
fetchType 사용 .LAZY는 관련 컬렉션에 액세스할 때까지 로드를 지연합니다. 컬렉션을 즉시 로드하려면 fetchType.EAGER를 사용하세요. 하지만 성능에 영향을 줄 수 있다는 점에 유의하세요. 특정 사용 사례에 대해 느리게 로드된 컬렉션을 수동으로 초기화하려면 서비스 클래스에서 Hibernate.initialize() 사용을 고려하세요.
계단 방향 결정:
@Cascade 주석을 사용하여 계단식 옵션을 지정합니다. 일반적으로 캐스케이드는 소유 관계의 방향으로 변경됩니다. 애플리케이션 컨텍스트에서 적합하지 않은 경우 하위 항목에서 상위 항목으로의 계단식 업데이트나 삭제를 피하세요.
고아 제거:
orphanRemoval = true로 설정하세요. 상위 개체의 컬렉션에서 제거될 때 Hibernate가 고아 개체(즉, 다른 상위 개체와 연결되지 않은 개체)를 자동으로 삭제하도록 하는 @OneToMany 주석입니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3