Whiteship's Note

'외례키 맵핑'에 해당되는 글 1건

  1. 2008.02.09 OneToOne 외례키 맵핑

OneToOne 외례키 맵핑

Hibernate/Chapter 7 : 2008.02.09 10:12


특징

  • 주키를 공유하는 것이 아니라, 외례키로 관계를 맺는다.
  • User---->Address 의 관계에서 User는 Source, Address는 Target.
  • Source에서 Target이 한 개씩 맵핑되기 때문에, ManyToOne으로 Unique 속성을 true로 맵핑한다.(XML에서만)
  • 양방향으로 맵핑할 때는 Address---->User로 맵핑도 해줘야 한다.
  • 하이버네이트에 Address의 user가 반대쪽 관계를 나타내는 속성의 inverse라는 것을 표현해준다.

맵핑하기

  • 단뱡향 맵핑
User.java
@OneToOne
@JoinColumn(name="SHIPPING_ADDRESS_ID")
@Cascade( { CascadeType.SAVE_UPDATE })
private Address shippingAddress;
  • Address의 주키 속성은 그냥 일반적인 id로 설정하고 기본 주키 생성기를 사용한다. 커스텀 주키 생성기 사용할 필요 없슴.
  • 양방향 맵핑
Address.java
@OneToOne(mappedBy = "shippingAddress")
private User user;
  • mappedBy를 설정해 주어야 Address에 별도의 외례키 컬럼을 만들지 않는다. 왜? inverse라는 걸 알려줬으니까. inverse? 이건 이미 이 반대 방향의 관계에서 이 둘의 관계에 필요한 속성이 있으니까 불필요한 컬럼(또는 추가적인 SQL)을 만들지 않도록 하이버한테 알려주는 거지.

'Hibernate > Chapter 7' 카테고리의 다른 글

다형적인 ManyToOne 연관  (0) 2008.02.20
하이버네이트 애노테이션과 XML 설정 사이의 Fetching 기본값 차이  (0) 2008.02.20
맵 맵핑하기  (0) 2008.02.09
Join Table에 컬럼 추가하기  (0) 2008.02.09
ManyToMany 관계 맵핑  (7) 2008.02.09
OneToMany 관계 맵핑  (1) 2008.02.09
Multy-valued entity 연관  (0) 2008.02.09
OneToOne Join Table 맵핑  (0) 2008.02.09
OneToOne 외례키 맵핑  (0) 2008.02.09
주키를 공유하는 맵핑  (0) 2008.02.09
Single-valued entity 연관  (0) 2008.02.09
top

Write a comment.