'n-1'에 해당되는 글 1건

  1. 2010.06.04 Hibernate n-1 관계
n-1관계를 표현할때는
  • 외부 키를 이용한 n-1 관계
  • 조인 테이블을 이용한 n-1 관계
외부키를 이용한 n-1 관계

Order 와 Product 클래스는 n-1  관계를 갖는다.
<many-to-one> 태그를 사용하여, Order클래스에서 Product 클래스로 부터 n-1관계를 표시할 수 있다.

<class name="Product" table="PRODUCT">
  <id name="id" column="ID">
    <generator class="identity" />
  </id>
..
<class name="Order" table="ORDERINFO">
  <id name="id" column=ID">
    <generator class="identity" />
  </id>

  <many-to-one name="product" class="Product" column="PRODUCTID" />
  <component name="address" class="Address"">
  ..
  </component>
</clss>

죠인 테이블을  이용한 n-1 관계
조인 테이블에 있는 두 칼럼이 모두 주요키로 사용되며, 조인 테이블의 각 칼럼은 각각 ITEM테이블과 SELLER  테이블의 주요키를 참조하는 외부 키이다.
조인 테이블을 이용, n-1의 관계를 매핑할 때에는 조인 테이블을 이용한 1-1의 관계를 매핑할때와 마찬가지로 <join>  태그 사용
<class name="item" table="ITEM">
  <id name="id' column="ID">
    <generator clss="identity" />
  </id>
  <join table="ITEM_SELLER" optional="true">
    <key coulmn="ITEMID" />
    <many-to-one name="seller" column="SELLTERID" />
  </join>
</class>

<class name="Seller" table="SELLDER">
  <id name="id" column="ID">
    <generator class="identity" />
  </id>
</class>
조인 테이블을 이용한 1-1 관계의 경우와 비슷.
<many-to-one>에서 unique  속성을 명시하지 않는 것이 차이점. n-1관계이기 때문에 동일한 값의 SELLERID 칼럼에 여러
ITEMID 값이 존재 할수 있다. -> SELLERID는 유일한 값을 갖지 않으므로 unique 속성을 명시하지 않음.



저작자 표시
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 영겁회귀

티스토리 툴바