--------------------------------以下是单向关联-----------------------------------------------------------------------------------
一,多对一。
/**表结构**/
table person(
personID varchar2(32) not null primarykey,
addressID varchar2(32) not null
)
table address(
addressID varchar2(32) not null primarykey
)
person.hbm.xml:
<class name="Person" table="person">
<id>
<generator class="native"/><!-- native表示根据本地数据库自动生成主键-->
<!--<generator class="uuid" /> uuid表示根据uuid生成主键-->
</id>
<many-to-one name="address" column="addressID" not-null="true" lazy="false"/>
</class>
二,一对一。
/**表结构**/
table person(
personID varchar2(32) not null primarykey,
addressID varchar2(32) not null unique
)
table address(
addressID varchar2(32) not null primarykey
)
person.hbm.xml:再多对一的基础上加唯一约束。
<class name="Person" table="person">
<id name="personId" column="personID">
<generator class="native"/>
</id>
<many-to-one name="address" column="addressID" unique="true" not-null="true" lazy="false"/>
</class>
address.hbm.xml:
<class name="Address" table="address">
<id name="addressId" column="addressID">
<generator class="native"/>
</id>
</class>
三,一对多
table address (
addressId varchar2(32) not null primary key
)
table person(
personId varchar2(32)not null primary key,
addressId varchar2(32)not null
)
<class name="Address " table="address">
<id name="id" column="addressId">
<generator class="native"/>
</id>
<set name="persons"><!--也可以使用list不过鉴于list与set特点使用gset好一些-->
<key column="addressId" not-null="true"/>
<one-to-many class="Person"/>
</set>
</class>
<class name="Person" table="person">
<id name="id" column="personId">
<generator class="native"/>
</id>
</class>
---------------------------------------------
联合主键,多对一。