단방향 One-to-One 관계의 표현

두개의 User, AccessRight의 java클래스가 단방향 1:1 관계를 이룰때

class User {
   int user;
   AccessRight right;
   ….
  
}

class AccessRight {
   int rightId;
   …
}

User와 AccessRight의 매핑파일은 아래와 같다.

——————— User.hbm.xml ———————-
<?xml version=”1.0″?>
<!DOCTYPE hibernate-mapping PUBLIC
 “-//Hibernate/Hibernate Mapping DTD 3.0//EN”
 “http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd“>
<hibernate-mapping package=”dev.struts3.model” default-lazy=”false”>
  <class name=”User”>
   <id name=”user” type=”int”  unsaved-value=”null”>
    <generator class=”increment”/>
   </id>
   …  
  <many-to-one name=”right”
              column=”rightId”                     
     class=”AccessRight”
     not-null=”true”/>
  </class>
</hibernate-mapping>

——————— AccessRight.hbm.xml ———————-
<?xml version=”1.0″?>
<!DOCTYPE hibernate-mapping PUBLIC
 “-//Hibernate/Hibernate Mapping DTD 3.0//EN”
 “http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd“>
<hibernate-mapping package=”dev.struts3.model” default-lazy=”false”>
   <class name=”AccessRight”> 
   <id name=”rightId” type=”int” unsaved-value=”null”>
     <generator class=”increment”/>
   </id>  
   …..
   </class> 
</hibernate-mapping>

User.hbm.xml에 다음절에 의해 User테이블에 rightId가 필드가 AccessRight의 rightId를 외래키로 지정된다.
<many-to-one name=”right” column=”rightId”  class=”AccessRight”  not-null=”true”/>

 

답글 남기기

이메일 주소는 공개되지 않습니다.